首页 > 解决方案 > 如何获取文档的单个字段

问题描述

此代码检索user/sets日期介于greaterThan和之间的所有文档lessThan。我正在使用 Cloud Firestore。

    Query dbSets = db.collection("users")
            .document(id)
            .collection("sets")
            .whereLessThan("date", lessThan);
    dbSets
            .whereGreaterThanOrEqualTo("date", greaterThan)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            log(document.getData().toString()+document.getId());
                        }
                    }
                }
            });

此代码在日志中生成:

{date=Mon Jul 02 00:00:00 GMT+02:00 2018, name=Hanna, nc=true, inst=true}p1kr3Y34mu50NRNXjvno

我应该怎么做才能获得单个字段的值?例如:

document.getData().get("name") // outputs "Hanna"

我找不到这方面的任何文档(是因为 Cloud Firestore 仍处于测试阶段吗?)。

标签: androidfirebasegoogle-cloud-firestore

解决方案


原来我的示例解决方案是正确的方法:

log(document.getData().get("name")+document.getId());

输出:

Hannap1kr3Y34mu50NRNXjvno

相关文档:https ://firebase.google.com/docs/reference/android/com/google/firebase/firestore/QueryDocumentSnapshot


推荐阅读