【问题标题】:Flutter: Creating a user in Firestore using the account created from Firebase AuthenticationFlutter:使用从 Firebase 身份验证创建的帐户在 Firestore 中创建用户
【发布时间】:2020-06-10 21:41:18
【问题描述】:

我正在创建一个使用 dart 语言和 Firebase 进行身份验证的颤振应用程序。

我的用户注册代码是

  Future<void> signUp() async {
if(_formKey.currentState.validate()){
  _formKey.currentState.save();
  try{
    AuthResult user = await FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email, password: _password);

    Navigator.of(context).pop();
    Navigator.pushReplacement(context,MaterialPageRoute(builder: (context)=> LoginPage()));
  }catch(e){
    print(e.message);
  }

有谁知道我将如何使用新创建的用户凭据在数据库中为用户创建一个条目?

我已经使用我手动输入的虚拟用户设置了数据库,但希望能够从注册用户创建条目。

【问题讨论】:

标签: firebase flutter dart google-cloud-firestore firebase-authentication


【解决方案1】:

您可以从 AuthResult 获取 uid 以在 Firestore 中创建文档。 setData 更新文档,或者在这种情况下,创建一个,因为它不存在。确保安装 cloud_firestore_package。

UserCredential result = await FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email, password: _password);
User user = result.user
await FirebaseFirestore.instance.collection('users')
      .doc(user.uid).set({ 'firstName': _firstName})

【讨论】:

  • 感谢您提供非常有帮助的答案!对于其他阅读本文的人,我添加了软件包并安装了它。然后需要启用多索引link 您可以使用这行代码将多个值添加到一个文档中,如下代码:codeawait Firestore.instance.collection('users').document(user.uid)。 setData({ 'firstName': _firstName, 'lastName': _lastName, 'userName': _userName})
  • result.user 返回错误:LateInitializationError: Field 'user;尚未初始化。
【解决方案2】:

首先你需要连接到数据库。为此,您必须将cloud_firestore package 添加到您的项目中。

在同一页面上,您可能会发现 very nice example 如何在 Flutter 中进行操作。

如果您在同一包页面上寻求更多详细信息,您可以找到API reference

只要研究一下这个包,一切都应该在那里。

我希望它会有所帮助!祝你好运!

【讨论】:

    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多