flutterでfirebaseを使用し、Googleログインを実装しています。
プロフィール情報を
・年齢
・エリア
・性別
・プロフ画像
を作成・編集できるようにしたいです。
ですが、メールでアカウント作成する場合と違い、firestoreに情報が登録されないですよね。
その場合、どのように追加していけばいいのでしょうか。
他にも投稿を紐付けていきます。
追記
このコードで行う場合はどのようにuidを取得していけばいいでしょうか?
class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { final GoogleSignIn _googleSignIn = GoogleSignIn(); final FirebaseAuth _auth = FirebaseAuth.instance; Future<FirebaseUser> _handleSignIn() async { GoogleSignInAccount googleCurrentUser = _googleSignIn.currentUser; try { if (googleCurrentUser == null) googleCurrentUser = await _googleSignIn.signInSilently(); if (googleCurrentUser == null) googleCurrentUser = await _googleSignIn.signIn(); if (googleCurrentUser == null) return null; GoogleSignInAuthentication googleAuth = await googleCurrentUser.authentication; final AuthCredential credential = GoogleAuthProvider.getCredential( accessToken: googleAuth.accessToken, idToken: googleAuth.idToken, ); final FirebaseUser user = (await _auth.signInWithCredential(credential)).user; print("signed in " + user.displayName); return user; } catch (e) { print(e); return null; } } void transitionNextPage(FirebaseUser user) { if (user == null) return; Navigator.push(context, MaterialPageRoute(builder: (context) => NextPage(userData: user))); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ RaisedButton( child: Text('Sign in Google'), onPressed: () { _handleSignIn() .then((FirebaseUser user) => transitionNextPage(user)) .catchError((e) => print(e)); }, ), ]), ), ); } }
あなたの回答
tips
プレビュー