【问题标题】:How do I access a field inside a document inside a collection in Firebase (Android Studio)如何访问Firebase(Android Studio)中集合内的文档内的字段
【发布时间】:2021-03-13 21:49:08
【问题描述】:

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

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

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

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

是否有不包含“getDisplay”方法的替代方法来获取名称?

【问题讨论】:

    标签: java android database firebase android-studio


    【解决方案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();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2021-07-29
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2020-03-28
      相关资源
      最近更新 更多