如何访问 Firebase (Android Studio) 集合内文档内的字段

时间:2021-03-13 21:49:08

标签: java android database firebase android-studio

我有一个名为“users”的集合和一个包含用户的文档,其中包含一些信息,例如电子邮件、姓名和电话

enter image description here

但是,当我尝试使用以下名称访问名称时:

FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser() ;
String Name = currentFirebaseUser.getDisplayName;

它返回一个空字符串。它适用于电子邮件,但不适用于姓名。

是否有另一种方法来获取不涉及“getDisplay”方法的名称?

1 个答案:

答案 0 :(得分:1)

currentFirebaseUser.getDisplayName() 返回与该帐户关联的用户名,该用户名与您的 Firestore 数据库无关。

要从 firestore 数据库中获取数据,首先创建一个 POJO 类,例如。 User

public class User {
    private String email, fName, phone;
    public User(){
        //Required for firestore
    }

    public User(String email, String fName, String phone) {
        this.email = email;
        this.fName = fName;
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getfName() {
        return fName;
    }

    public void setfName(String fName) {
        this.fName = fName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

我假设您必须使用 firebase 用户的 UID 作为文档名称。 从 Firestore 获取用户详细信息:

FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
FirebaseFirestore db = FirebaseFirestore.getInstance()
DocumentReference docRef = db.collection("users").document(currentFirebaseUser.getUid());
docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
    @Override
    public void onSuccess(DocumentSnapshot documentSnapshot) {
        User user = documentSnapshot.toObject(User.class);
        String fName = user.getfName();
        String email = user.getEmail();
        String phone = user.getPhone();
    }
});
相关问题