Firebase Auth (android) 后在数据库中创建用户

Posted

技术标签:

【中文标题】Firebase Auth (android) 后在数据库中创建用户【英文标题】:Create user in database after Firebase Auth (android) 【发布时间】:2016-11-03 16:07:15 【问题描述】:

我正在构建一个 android 应用程序,我希望我的用户经过身份验证,然后添加到数据库中。现在我只使用电子邮件和密码进行身份验证,然后单击注册,并在 Firebase 控制台的身份验证部分创建用户。

但我也希望将我的用户添加到数据库中。我想添加更多字段(例如姓名、地址等),这些字段将存储在 Firebase 的用户数据库中。

我只是不知道该怎么做。谁能解释一下?

谢谢!

【问题讨论】:

见***.com/a/37420701/4695325 是为了增加额外的属性,而不是一开始就说明如何在数据库中创建用户对象... 我是否需要在数据库中创建某种结构(使用 Firebase 控制台)?正如我之前所说,一旦我连接了一个新用户,它会在“身份验证”选项卡中提及,但“数据库”选项卡仍然是空的。 确切地说,您必须在数据库中创建一个条目(不是从控制台,但您将在那里查看您的数据)。您的代码应创建此条目并在其中为您的用户存储数据。 我确实有同样的问题。网络上没有任何内容解释如何将用户和其他信息添加到 Firebase。我可以在由 firebase 自动创建的数据库中看到电子邮件。现在,如果我想将用户名、电话号码、地址等添加到 firebase 数据库怎么办。请帮忙! 【参考方案1】:

您应该创建一个保存用户的节点,如下所示:

users: 
  userID1: 
    name: 'Raph'
  ,
  userID2: 
    name: 'Devid'
  

每个登录用户都有一个唯一的uid,您可以将其用作密钥。当你登录你的用户时,你可以在 authToken 中找到它。

注意这只是 Firebase 中用于保存用户数据的普通节点。 它是Firebase generated users 的替代解决方案。

【讨论】:

好的,我通过点击绿色的“+”创建了“用户”,所以现在当我转到 http://.firebaseio.com/users/userID1 时,我有 userID1(写有“null”的长字符串 K9gdkDgfd...)。我不应该能够看到电子邮件和密码,比如刚刚创建的用户的数据吗?我真的不明白如何从代码中管理它,我认为一切都应该在数据库中设置(例如,手动创建结构,然后在用户在应用程序上创建帐户时填充它) 而在我的代码中,目前我只做auth.createUserWithEmailAndPassword(email, password) 您可以在登录用户时在 authToken 中找到这些数据(电子邮件、提供商、姓名,但不是密码),并将它们推送到 firebase。 Firebase 在内部创建用户配置文件(请参阅我的回复中的链接),但它只允许您存储少量数据。如果您想保存更多信息,您应该使用此方法。希望我很清楚:) 你使用AuthStateListener吗? firebase.google.com/docs/auth/android/… 不,我应该吗?我真的不明白它的目的。目前在 SignupActivity 我只有createUserWithEmailAndPassword【参考方案2】:

注意:这是 3 年前回答的 - Firebase 改进了很多。实施也发生了变化

这是将注册的详细信息存储在数据库中的一种方法,

Map<String, String> parameters = new HashMap<>();
FirebaseDatabase mFirebaseInstance;
parameters.put(Constant.TAG_USER, strUsrS.trim());
parameters.put(Constant.TAG_PASS, strPassS.trim());
//use this if needed(pushId)
String pushId = mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().push().getKey();
parameters.put(Constant.TAG_KEY, pushId.trim());

mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().child(strUsrS.trim()).setValue(parameters);

【讨论】:

以上是关于Firebase Auth (android) 后在数据库中创建用户的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase.auth.currentUser Android Kotlin 获取刷新令牌

Apple使用FireBase Auth登录android有问题

如何使用 Firebase Auth 将令牌发送回 android

Firebase OTP Auth消息在iOS和Android中有所不同

Firebase Auth (android) 后在数据库中创建用户

如何使用firebase auth android无法返回android