【问题标题】:How to access another FirebaseUser`s properties?如何访问另一个 FirebaseUser 的属性?
【发布时间】:2016-05-31 19:56:45
【问题描述】:

好吧,我可以以FirebaseAuth.getInstance().getCurrentUser() 访问当前的FirebaseUser 对象,然后我可以调用getPhotoUrl()getDisplayName() 方法。 问题是给定用户UUID,如何访问另一个用户的对象并调用这些方法?

PS:在安卓上

【问题讨论】:

  • 这将被称为安全漏洞......怀疑你会做到这一点。
  • @theblindprophet 所以我应该制作自己的 JSON 树来保存这些信息并在用户之间正确共享吧?保留两次相同的信息不是冗余吗?
  • 如果您希望其他用户能够访问该信息,那么可以,使用该信息创建您自己的子树。

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

FirebaseUser 具有一组固定的基本属性——唯一 ID、主电子邮件地址、姓名和照片 URL——存储在单独项目的用户数据库中;这些属性可以由用户更新。您不能直接向 FirebaseUser 对象添加其他属性;相反,您可以将其他属性存储在 Firebase 实时数据库中。

    FirebaseAuth mAuth = FirebaseAuth.getInstance();

mAuth.createUserWithEmailAndPassword("email@example.com", "my pass")
    .continueWithTask(new Continuation<AuthResult, Task<Void>> {
        @Override
        public Task<Void> then(Task<AuthResult> task) {
            if (task.isSuccessful()) {
                FirebaseUser user = task.getResult().getUser();
                DatabaseReference firebaseRef = FirebaseDatabase.getInstance().getReference();
                return firebaseRef.child("users").child(user.getUid()).child("phone").setValue("650-253-0000");
            } else {
                // User creation didn't succeed. Look at the task exception
                // to figure out what went wrong
                Log.w(TAG, "signInWithEmail", task.getException());
            }
        }
    });

【讨论】:

    【解决方案2】:

    执行此操作的常用方法是将有关用户的可共享信息存储在 Firebase 数据库中。

    firebase.com 上的文档有一个很好的例子。请参阅 https://www.firebase.com/docs/android/guide/user-auth.html#section-storing 方法与新的 Firebase 更改相同,但您需要稍微修改一下代码。

    我将添加一条说明,我们也需要将其示例添加到新的 Firebase 文档中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2021-11-27
      • 2017-10-17
      相关资源
      最近更新 更多