使用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规则相匹配,否则它将不会持久存在。

如果一切按预期进行,您应该在数据库中看到详细信息:

enter image description here

另一答案

您必须创建另一个数据库表,例如“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);
}

你可以参考https://github.com/firebase/quickstart-android/tree/61f8eb53020e38b1fdc5aaeddac2379b25240f3b/database

以上是关于使用firebase添加额外的用户信息的主要内容,如果未能解决你的问题,请参考以下文章

使用firebase添加额外的用户信息

使用 Firebase 用户管理添加额外字段

Firebase 到 Kotlin 片段

如何在现有的 Firebase json 结构下添加子节点?

将片段中的Firebase信息检索到recyclerview中

我可以在 android studio 的片段上使用 Firebase 吗?