使用firebase添加额外的用户信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用firebase添加额外的用户信息相关的知识,希望对你有一定的参考价值。
我已将firebase auth与我的android应用程序集成。让我们说用户有一个邮件abc@abc.com
。我想向用户添加一些额外的信息,如用户名,职业和地址。如何将用户auth表与我的Android应用程序连接起来呢?
我需要为此编写任何API吗?
答案
首先,在db中创建一个users
目录。然后,使用从authn进程获得的用户唯一ID,将用户信息存储在users/{userid}
下。
为此,您需要了解Firebase数据库的详细信息。见这里:https://firebase.google.com/docs/database/android/save-data
另一答案
您无需编写任何自定义代码即可执行此操作。 Firebase已经具备了您可以使用的功能。
您需要做的第一件事是确保用户只能访问他们存储的数据。要执行此操作,请转到Database/Rules
并将您的规则更改为:
{
"rules": {
"my_app_user": {
"$uid": {
".write": "auth != null && auth.uid == $uid",
".read": "auth != null && auth.uid == $uid"
}
}
}
}
然后,要将新详细信息保存在Firebase数据库中,请执行以下操作:
MyAppUser user = new MyAppUser();
user.setAddressTwo("address_two");
user.setPhoneOne("phone_one");
...
mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user).
addOnCompleteListener(DetailsCaptureActivity.this,
new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
...
子my_app_user
的名称必须与您的代码和Firebase规则相匹配,否则它将不会持久存在。
如果一切按预期进行,您应该在数据库中看到详细信息:
另一答案
您必须创建另一个数据库表,例如“user”。成功登录后,首次注册您必须在用户表中创建一个新行。
public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) {
User user = new User(name, email, accountType);
databaseReference.child("users").child(userId).setValue(user);
}
以上是关于使用firebase添加额外的用户信息的主要内容,如果未能解决你的问题,请参考以下文章
如何在现有的 Firebase json 结构下添加子节点?