コレクションから複数のドキュメントをクエリするFirestore

アダムマ

Firestoreにはusersコレクションがあり、各ユーザードキュメント内には、favorites(stores)としてマークされたドキュメントのIDを含むfavoritesという名前のコレクションが格納されています。

例えば:

in users/2pfV9FbtwPYFmQHz3KU2BKmhMr82/favorites 
I have multiple documents such as 7F9COWGW3Ww8FWiH8VTA and 8b8WogHzpqCkw0ZxMjOw

これらの2つのIDとそれ以上(お気に入りリストにない)を含むstoresというコレクションから同じdocIDを持つすべてのドキュメントを返すクエリを作成したいと思います。

A similar query will be
SELECT * FROM stores WHERE docID EXISTS IN favorites

別の方法で両方のコレクションを取得して手動でフィルタリングすることもできますが、表示されるすべてのデータがクエリに基づいており、処理が効率化されるFirebaseRecyclerViewアダプターを使用しています。

どのようにしてそのような結果を達成することができますか?さらに説明が必要な場合はお知らせください

アダムマ

上記の質問に対する考えられる答えは、お気に入りコレクションからすべてのドキュメントIDを取得してリストに入れ、whereIn関数を使用してストアコレクションIDをお気に入りリストIDに結合することです。

主な問題は、FirebaseRecyclerViewを使用するとリアルタイム更新機能が完全に失われることです

favoriteList = new ArrayList<>();
        favCollection.get() //get user favorites
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if (task.isSuccessful()) {
                            for (QueryDocumentSnapshot document : task.getResult()) {
                                favoriteList.add(0, document.getId());
                                Log.d("Favorites", document.getId() + " => " + document.getData());
                            }
                            query = storesCollection.whereIn(FieldPath.documentId(), favoriteList).orderBy("storeName");//FieldPath.documentId gives documents IDs in stores collection which will be filtered with the provided list
                            attachRecyclerViewAdapter();//Initiate adapter after favorites list completion
                        } else {
                            Log.d("Favorites", "Error getting documents: ", task.getException());
                        }
                    }
                });

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cloud Firestoreで複数のドキュメントサブコレクションをクエリすることは可能ですか?

分類Dev

コレクションから複数のドキュメントを取得するときにFirestoreのメモリ制限を超えました

分類Dev

コレクションから重複ドキュメントを削除するMongoDBクエリ

分類Dev

Swift Firestoreは、同時に複数のコレクションのドキュメントを取得しますか?

分類Dev

コレクションmongoDB内の配列からドキュメントをクエリする

分類Dev

Firestoreからのドキュメントのクエリコレクションからリストを作成します

分類Dev

Firestoreの1つのコレクションからすべてのドキュメントを取得する

分類Dev

Firestoreからすべてのドキュメントとコレクションを削除する

分類Dev

複数のドキュメントからデータを読み取ると、Firestoreトランザクションが複数回トリガーされます

分類Dev

ドキュメントキーのFireStoreコレクションをクエリします

分類Dev

別のコレクションからキーを含むドキュメントの数を取得する方法

分類Dev

悪意のあるユーザーがデータをクエリしたときに、Firestoreの膨大なコレクションからのドキュメント読み取りの数を制限するにはどうすればよいですか?

分類Dev

FirestoreからSwiftを使用してコレクションからドキュメントIDを取得する方法

分類Dev

Firestoreアンドロイドでコレクションからドキュメントのリストを取得する方法

分類Dev

FirestoreのドキュメントIDの配列からすべてのサブコレクションドキュメントをフェッチする方法

分類Dev

別のコレクションドキュメントIDからコレクション値を取得する方法が参照されているFirestore

分類Dev

削除されたドキュメントのサブコレクションに対するFirestoreクエリ

分類Dev

サブコレクションfirestoreでドキュメントをクエリする

分類Dev

C#ドライバーで複雑なクエリを使用してコレクションからドキュメントを削除する

分類Dev

Firestoreクエリドキュメントのサブコレクション

分類Dev

ReactiveMongo:コレクションから複数のドキュメントをランダムに選択するにはどうすればよいですか?

分類Dev

各サブコレクションの最後のドキュメントのみを返すFirestoreグループコレクションクエリ

分類Dev

同じドキュメント構造(MongoDBとPHP)を持つ複数のコレクションからドキュメントをクエリ(多数検索)します

分類Dev

MongoDBを使用して、別々のコレクション内のドキュメントから複数のフィールドを集約する

分類Dev

Cloud Firestoreを使用してコレクション内のドキュメント数を取得する方法

分類Dev

数量に達するまでコレクションからランダムなドキュメントを選択するためのMongodbクエリ

分類Dev

複数のコレクションのドキュメントを同時にカウントする

分類Dev

リストドキュメントをあるコレクションから別のコレクションに条件付きで一括移動する

分類Dev

React Native Expo:Firebaseを使用してコレクション内の複数のドキュメントから選択したフィールドをクエリする方法は?

Related 関連記事

  1. 1

    Cloud Firestoreで複数のドキュメントサブコレクションをクエリすることは可能ですか?

  2. 2

    コレクションから複数のドキュメントを取得するときにFirestoreのメモリ制限を超えました

  3. 3

    コレクションから重複ドキュメントを削除するMongoDBクエリ

  4. 4

    Swift Firestoreは、同時に複数のコレクションのドキュメントを取得しますか?

  5. 5

    コレクションmongoDB内の配列からドキュメントをクエリする

  6. 6

    Firestoreからのドキュメントのクエリコレクションからリストを作成します

  7. 7

    Firestoreの1つのコレクションからすべてのドキュメントを取得する

  8. 8

    Firestoreからすべてのドキュメントとコレクションを削除する

  9. 9

    複数のドキュメントからデータを読み取ると、Firestoreトランザクションが複数回トリガーされます

  10. 10

    ドキュメントキーのFireStoreコレクションをクエリします

  11. 11

    別のコレクションからキーを含むドキュメントの数を取得する方法

  12. 12

    悪意のあるユーザーがデータをクエリしたときに、Firestoreの膨大なコレクションからのドキュメント読み取りの数を制限するにはどうすればよいですか?

  13. 13

    FirestoreからSwiftを使用してコレクションからドキュメントIDを取得する方法

  14. 14

    Firestoreアンドロイドでコレクションからドキュメントのリストを取得する方法

  15. 15

    FirestoreのドキュメントIDの配列からすべてのサブコレクションドキュメントをフェッチする方法

  16. 16

    別のコレクションドキュメントIDからコレクション値を取得する方法が参照されているFirestore

  17. 17

    削除されたドキュメントのサブコレクションに対するFirestoreクエリ

  18. 18

    サブコレクションfirestoreでドキュメントをクエリする

  19. 19

    C#ドライバーで複雑なクエリを使用してコレクションからドキュメントを削除する

  20. 20

    Firestoreクエリドキュメントのサブコレクション

  21. 21

    ReactiveMongo:コレクションから複数のドキュメントをランダムに選択するにはどうすればよいですか?

  22. 22

    各サブコレクションの最後のドキュメントのみを返すFirestoreグループコレクションクエリ

  23. 23

    同じドキュメント構造(MongoDBとPHP)を持つ複数のコレクションからドキュメントをクエリ(多数検索)します

  24. 24

    MongoDBを使用して、別々のコレクション内のドキュメントから複数のフィールドを集約する

  25. 25

    Cloud Firestoreを使用してコレクション内のドキュメント数を取得する方法

  26. 26

    数量に達するまでコレクションからランダムなドキュメントを選択するためのMongodbクエリ

  27. 27

    複数のコレクションのドキュメントを同時にカウントする

  28. 28

    リストドキュメントをあるコレクションから別のコレクションに条件付きで一括移動する

  29. 29

    React Native Expo:Firebaseを使用してコレクション内の複数のドキュメントから選択したフィールドをクエリする方法は?

ホットタグ

アーカイブ