Flutter Firebase其中包含两个值[重复]

3j86kqsm  于 2023-01-05  发布在  Flutter
关注(0)|答案(1)|浏览(96)
    • 此问题在此处已有答案**:

Firestore search array contains for multiple values(6个答案)
昨天关门了。
下面是我的代码。我有两个输入参数authUser和chatUser。我有一个名为Chats的记录,其中有一个名为users的List字段。我想查询并获得其中的List字段users同时包含authUser和chatUser的文档。

import 'package:cloud_firestore/cloud_firestore.dart';

Future<ChatsRecord> getChatDocFromChatUserAuthUser(
  DocumentReference? chatUserRef,
  DocumentReference? authUserRef,
) async {
  // Add your function code here!

  ChatsRecord chatDoc = await FirebaseFirestore.instance
      .collection('chats')
      .where("users", arrayContains: chatUserRef)
      .where("users", arrayContains: authUser)
      .get()
      .then((snapshot));

  return chatDoc;
}
y4ekin9u

y4ekin9u1#

您应该通过以下方式尝试使用QuerySnapshots中的条件:

CollectionReference chatDoc = Firestore.instance.collection('chats');
final snapshots = chatDoc.snapshots().map((snapshot) => snapshot.documents.where((doc) => doc["users"] == chatUserRef || doc["users"] == authUser));

return (await snapshots.first).toList();

相关问题