如何访问另一个FirebaseUser的属性?

时间:2016-05-31 19:56:46

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

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

PS:在android上

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

FirebaseUser有一组固定的基本属性 - 一个唯一的ID,一个主电子邮件地址,一个名称和一个照片网址 - 存储在一个单独的项目的用户数据库中;用户可以更新这些属性。您无法直接向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());
            }
        }
    });