首页 > 解决方案 > 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 还是实时数据库?

感谢所有的帮助。

标签: firebaseflutter

解决方案


你有很多问题隐藏在一个问题中。我将尝试在下面尽可能多地解决,但请尝试在未来坚持一个问题。


在 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集合中的键是惯用的(并且更容易)。


推荐阅读