代码之家  ›  专栏  ›  技术社区  ›  jonasxd360

如何使用FialBaseFixSt店获取查询数据?

  •  1
  • jonasxd360  · 技术社区  · 6 年前
    Query query = mTournamentColRef.whereEqualTo("author", user.getUid());
    

    我想把文件的身份证弄进去 mTournamentColRef ,但在 Firebase documentation 讨论如何处理查询以及如何获取其数据。

    谢谢你的帮助!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Alex Mamo    6 年前

    如何使用FialBaseFixSt店获取查询数据?

    简单地说,使用 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 除非你需要实时获取数据。如果你只需要得到它,而不需要倾听变化,只需要使用 获取() 方法。

        2
  •  1
  •   Raj    6 年前

    您可以使用数据快照从查询中获取数据,或者如果使用FieldSturyRealver适配器,则可以直接将查询传递给构造函数。下面是获取特定数据的代码:

    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);
                        }
                    }
                });