【问题标题】:How to get query data using Firebase Firestore?如何使用 Firebase Firestore 获取查询数据?
【发布时间】:2018-06-24 18:04:02
【问题描述】:
Query query = mTournamentColRef.whereEqualTo("author", user.getUid());

我想在 mTournamentColRef 中获取 Document 的 ID,但在 Firebase documentation 中找不到任何关于如何处理查询以及如何获取其数据的内容。

感谢您的帮助!

【问题讨论】:

    标签: java android firebase google-cloud-firestore


    【解决方案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() 方法即可。

    【讨论】:

    • 你会写什么来代替//获取数据来获取匹配文档的ID?
    【解决方案2】:

    您可以使用数据快照从查询中获取数据,或者如果您使用的是 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);
                        }
                    }
                });
    

    【讨论】:

    • 我怎样才能得到文件(比赛)的ID? (顺便说一句,感谢您的帮助)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-12
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2018-11-06
      • 1970-01-01
      相关资源
      最近更新 更多