Flutter Firebase 向数据库添加其他用户信息,例如地址

Spi*_*zle 5 firebase flutter

我目前正在使用 Flutter Firebase 来保存正在注册该应用程序的用户的详细信息。

我所做的是用户能够使用他们的电子邮件和密码进行注册。但我想知道的是如何添加其他用户信息,例如要保存的地址,以便用户在我从 Firebase 将其检索到应用程序时能够看到它。

我所做的:

AuthResult user = await 
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);
Run Code Online (Sandbox Code Playgroud)

这会将用户电子邮件和密码保存到数据库中。

我已经尝试了以下解决方案:使用 Firebase 进行 Flutter 用户注册:添加额外的用户信息(年龄、用户名)

我试图做的事情:

Firestore.instance.collection('users').document().setData({ 'userid': 
user.uid, 'username': _address });
Run Code Online (Sandbox Code Playgroud)

而且我似乎在 Firestore 是一个未定义的名称以及 uid 未为类 'AuthResult' 定义错误。我是否缺少一些导入文件?

我只导入了:

import 'package:firebase_auth/firebase_auth.dart';
Run Code Online (Sandbox Code Playgroud)

另外,我知道我必须创建一个名为 user 的表以允许将数据保存在其中,但是我使用哪个表?Cloud Firestore 还是实时数据库?

感谢所有的帮助。

Fra*_*len 0

你在一个问题中隐藏了很多问题。我将在下面尝试尽可能多地解决问题,但请以后尽量只讨论一个问题。


在 Stack Overflow 上推荐一个数据库而不是另一个数据库是题外话。但我建议您阅读此处的Firebase 文档。

既然您开始使用 Cloud Firestore,那么让我们重点关注这一点。


您需要导入 Firestore 插件,就像您使用身份验证插件一样。所以像这样:

import 'package:cloud_firestore/cloud_firestore.dart';
Run Code Online (Sandbox Code Playgroud)

正如您所发现的,没有AuthResult.uid财产。在这种情况下,我建议浏览插件的参考文档,这样可以很容易地看出这AuthResult.user可能是要走的路。

所以像这样:

AuthResult result = await 
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);
User user = result.user;
Run Code Online (Sandbox Code Playgroud)

不是您所问问题的解决方案,但请使用document(user.uid)而不只是document(). 您现在所拥有的生成了一个文档 ID,而使用 UID 作为集合中的键是惯用的(而且更容易)users