firebase - Flutter Firebase 向数据库添加地址等其他用户信息
问题描述
我目前正在开发 Flutter Firebase 以保存注册该应用程序的用户的详细信息。
我所做的是用户能够使用他们的电子邮件和密码进行注册。但我想知道的是如何添加其他用户信息,例如要保存的地址,以便当我从 Firebase 将其检索到应用程序时用户能够看到它。
我做了什么:
AuthResult user = await
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);
这会将用户电子邮件和密码保存到数据库中。
我已经尝试过解决方案:使用 Firebase 进行 Flutter 用户注册:添加额外的用户信息(年龄、用户名)
我试图做的事情:
Firestore.instance.collection('users').document().setData({ 'userid':
user.uid, 'username': _address });
而且我似乎在 Firestore 是一个未定义的名称以及未为类 'AuthResult' 定义的 uid 上遇到错误。我是否缺少一些导入文件?
我只进口了:
import 'package:firebase_auth/firebase_auth.dart';
另外,我知道我必须创建一个名为 user 的表以允许将数据保存在其中,但我应该使用哪一个?Cloud Firestore 还是实时数据库?
感谢所有的帮助。
解决方案
你有很多问题隐藏在一个问题中。我将尝试在下面尽可能多地解决,但请尝试在未来坚持一个问题。
在 Stack Overflow 上推荐一个数据库而不是另一个数据库是题外话。但我建议在此处阅读 Firebase 文档。
既然您是从 Cloud Firestore 开始的,那么让我们专注于这一点。
您需要为 Firestore 导入插件,就像您使用带有身份验证的插件一样。所以像:
import 'package:cloud_firestore/cloud_firestore.dart';
正如您所发现的,没有AuthResult.uid
财产。在这种情况下,我建议浏览插件的参考文档,这样可以很容易地看出这AuthResult.user
可能是要走的路。
所以像:
AuthResult result = await
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);
User user = result.user;
不是您所问问题的解决方案,但请使用document(user.uid)
而不仅仅是document()
. 您现在所拥有的内容会生成一个文档 ID,而使用 UID 作为users
集合中的键是惯用的(并且更容易)。
推荐阅读
- database - 如何将 mongo 与 elasticsearch 同步
- javascript - 在 summernote 工具栏中添加一些文本
- elasticsearch - 动态更改弹性搜索查询中的“来自”值
- postgresql - 游标中的循环无法正常工作
- postgresql - 已安装postgis但无法创建扩展:错误:无法打开扩展控制文件~/postgis.control":没有这样的文件或目录
- javascript - JQuery函数在另一个函数之后不起作用
- artificial-intelligence - 对话框流中 fb messenger 的“开始”按钮
- c# - 实体框架中的用户定义表生成不正确的查询
- c# - 将文件分组为 500MB 块
- laravel - 在 laravel 5.7 中将 pdf 文件作为电子邮件附件发送