首页 > 解决方案 > 使用 whereEqualTo 从 Firestore 获取特定字段

问题描述

我有一个 firebase 文档,我想将字段值提取到 adnroid 中的 TextView,其中 mAuth 中的 currentuser id 等于文档中的 user-id 字段,但它不工作
Firebase Document Image

db = FirebaseFirestore.getInstance();
db.collection("users")
                .whereEqualTo("user-uid",uid)
                .get()
                .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                   @Override
                   public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                         user_name = task.getResult().getString("user-name");
                         user_email = task.getResult().getString("user-email");
                         user_last_name = task.getResult().getString("user-last-name");
                         user_phone_number = task.getResult().getString("user-phone-number");

                    }
                  });

标签: androidfirebasegoogle-cloud-firestore

解决方案


db.collection("users")
                .whereEqualTo("user-uid",uid)
                .get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()){
                            Toast.makeText(getActivity(),"success accessing database",Toast.LENGTH_SHORT).show();
                            for (QueryDocumentSnapshot document : task.getResult()){
                                //Fetch from database as Map
                                user_name = (String) document.getData().get("user-name");
                                user_last_name =(String) document.getData().get("user-last-name");
                                user_phone_number =(String) document.getData().get("user-phone-number");
                                user_email =(String) document.getData().get("user-email");

推荐阅读