Retoryのプライバシーポリシー
画像/メディア/ファイル
投稿した画像はクラウドサービスに保存するために使用します。保存先は「Firebase Storage」です
Firebase storageはこちら→ https://www.firebase.com/terms/privacy-policy.html
その他(ネットワーク接続の表示で使用します)
クラウドからデータを取得や送信するために使用します
不適切なコンテンツに関して
不適切なコンテンツに関してはユーザーからの通報から管理者が確認し、不適切と判断した場合はデータを削除、ユーザーの削除を行います。
FlutterでFirebase Storageに画像をアップロードする
Firebase StorageのFlutterプラグイン、READMEにサンプルコードかかれてないんか、、、 pic.twitter.com/HydEW5aTcJ
— shogo.yamada@Flutterマン (@yshogo87) June 21, 2019
なぜか現時点(2019/6/21)で Firebase StorageのFlutterプラグインの画面にサンプルコードが載っていないのでサンプルコードを載せておきます。
Firebaseの設定などは済ましてある前提です。
String storageUrl = "ストレージURL"; FirebaseStorage storage = new FirebaseStorage(storageBucket: storageUrl); final StorageReference ref = storage.ref().child("user_icon").child(uid + ".png"); StorageUploadTask task = ref.putFile(image); return await (await task.onComplete).ref.getDownloadURL();
FlutterでTextFieldをカスタマイズする
FlutterでおしゃれなTextForm作れた pic.twitter.com/svGBJjV6N5
— shogo.yamada@Flutterマン (@yshogo87) June 8, 2019
上のツイートのようなもりもりにカスタマイズできます。
child: Center( child: Container( margin: const EdgeInsets.only(left: 10, right: 10), child: Theme( data: new ThemeData( primaryColor: Colors.redAccent, primaryColorDark: Colors.red, ), child: TextField( decoration: InputDecoration( border: OutlineInputBorder( borderSide: BorderSide(color: Colors.teal)), hintText: 'Tell us about yourself', helperText: 'Keep it short, this is just a demo.', labelText: 'Life story', prefixIcon: const Icon( Icons.phone_iphone, color: Colors.green, ), prefixText: ' ', suffixText: "USD", suffixStyle: const TextStyle(color: Colors.green)), ), ), ), )
UICollectionView.reloadData() must be used from main thread onlyがでたとき
どうやらSwiftでreloadDataするときはメインスレッドでやらないといけないらしい
対処法は下記でいけた
DispatchQueue.main.async {
self.collctionView.reloadData()
}
FlutterでAppBarの背景色を透明にする
下記の方法で行けた
body: Stack( children: <Widget>[ Container( //My container or any other widget color: Colors.blue, ), new Positioned( //Place it at the top, and not use the entire screen top: 0.0, left: 0.0, right: 0.0, child: AppBar(title: Text('Hello world'), backgroundColor: Colors.transparent, //No more green elevation: 0.0, //Shadow gone ),), ], )
Findalizmプライバシーポリシー
画像/メディア/ファイル
投稿した画像はクラウドサービスに保存するために使用します。保存先は「Firebase Storage」です
Fibrease storageはこちら→ Privacy Policy - Firebase
カメラ(画像)
写真の撮影・プレビューに利用します 撮影された画像はグループ内で共有するために使用します その他(ネットワーク接続の表示で使用します) クラウドからデータを取得や送信するために使用します
不適切なコンテンツに関して
不適切なコンテンツに関してはユーザーからの通報から管理者が確認し、不適切と判断した場合はデータを削除、ユーザーの削除を行います。
データの保存先について
データはFirebaseに保存します。プライバシーポシーは こちら
Flutterでボタンのテキストを右寄せにする
下記の方法でいけた
FlatButton( onPressed: () {}, child: Container( width: double.infinity, child: const Text( "もっとみる", textAlign: TextAlign.right, ), ), ),
Flutterでバリデーションする
Flutter validationの実装も簡単でいいなー。自前でゴリゴリ書く必要ない。 pic.twitter.com/mtYQKakD3p
— shogo.yamada@Flutterマン (@yshogo87) March 30, 2019
上の記事に書きてるようなバリデーション方法のやり方を載せておく
class _EditProfileState extends State<EditProfile> { final _nameInputController = TextEditingController(); final _intoroductionInputController = TextEditingController(); final _formKey = GlobalKey<FormState>(); @override void initState() { super.initState(); _initSet(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Edit Profile"), actions: <Widget>[ StreamBuilder<bool>( stream: null, builder: (_, snapshot) { if (!snapshot.hasData || !snapshot.data) { return FlatButton( onPressed: () { _formKey.currentState.validate(); }, child: const Text( "Done", style: const TextStyle(color: Colors.blue), ), ); } return CupertinoActivityIndicator(); }, ) ], ), body: Form( key: _formKey, child: CustomScrollView( slivers: <Widget>[ _profileImage(user), _buildProfileSetting( "名前", rightLayout: Flexible( child: TextFormField( controller: _nameInputController, validator: (value) { if (value.isEmpty) { return 'Not allow empty text'; } }, decoration: InputDecoration( border: UnderlineInputBorder(), labelText: "UserName", ), ), ), ), ], ); }, ), ), ); }
詳しくはこちら
FlutterからFirebase Storageに画像をアップロードしてダウンロードURLを取得する
まずは下記のプラグインを導入します。
同時にFirebaseとFlutterの接続も忘れずに、
設定方法は下記をご覧ください。
Future<String> saveUserProfileImage(File image) async { final StorageReference firebaseStorageRef = FirebaseStorage.instance.ref().child("image.jpg"); final StorageUploadTask task = firebaseStorageRef.putFile(image); StorageTaskSnapshot storageTaskSnapshot = await task.onComplete; return storageTaskSnapshot.ref.getDownloadURL(); }
そしてこのメソッドを async/await
で取得すればダウンロードURLが取得できます。
Flutterでグーグルサインインボタンを出す
Flutterでグーグルサインインボタン簡単に出せた。 pic.twitter.com/lMPAY6aAKm
— shogo.yamada@Flutterマン (@yshogo87) March 24, 2019
上のようないわゆるよくあるボタンである。
出し方は下記のプラグインを導入する
実装はこんな感じ。一行書くだけ
Widget _loginLayout() { return Container( color: Colors.black.withOpacity(0.3), child: Center( child: GoogleSignInButton( onPressed: () {}, ), ), ); }