如何使用Firebase Firestore获取查询数据?

时间:2018-06-24 18:04:03

标签: java android firebase google-cloud-firestore

Query query = mTournamentColRef.whereEqualTo("author", user.getUid());

我想在mTournamentColRef中获取文档的ID,但是在Firebase documentation中找不到任何有关查询处理方式以及如何获取其数据的信息。

谢谢您的帮助!

3 个答案:

答案 0 :(得分:1)

您可以使用数据快照从查询中获取数据,或者,如果您使用的是Firestore Recycler Adapter,则可以将查询直接传递给构造函数。这是获取特定数据的代码:-

Query query = mTournamentColRef.whereEqualTo("author", user.getUid());
            query.addSnapshotListener(new EventListener<QuerySnapshot>() {
                @Override
                public void onEvent(QuerySnapshot queryDocumentSnapshots, FirebaseFirestoreException e)
                {
                    for (DocumentSnapshot doc : queryDocumentSnapshots)
                    {
                        Tournament tp = doc.toObject(Tournament.class);
                    }
                }
            });

答案 1 :(得分:1)

  

如何使用Firebase Firestore获取查询数据?

只需使用get()通话!

query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                Log.d("TAG", "Document Id: " + document.getId());
            }
        }
    }
});

除非您需要实时获取数据,否则无需使用addSnapshotListener。如果您只需要获取它而不必听更改,则只需使用get()方法。

答案 2 :(得分:0)

你可以得到我想要的文件 dicumentsnapshot.getId()