繁体   English   中英

如何检查文档是否包含 Firestore 数组中的值?

[英]How can I check if a document contains a value inside a Firestore array?

我正在使用 Flutter 和 Firestore,这个数据库在哪里 我试图查看数组中是否存在一个值,但我只找到了对我不起作用的解决方案,有时它们是另一种语言,但是我希望能够查看文档中的数组中是否存在值。

例如,我想检查用户 ID userID1是否在下图中标记为红色的数组miembros

阵列的示例图像

我的想法是,如果miembros数组中不存在值userID1 ,我可以执行if添加值。 实际上非常感谢你的帮助

如果你只需要检查一个数组是否包含特定值,那么你可以使用arrayContains如下所示:

FirebaseFirestore.instance
  .collection('grupos')
  .where('miembros', arrayContains: 'ValueToCheck')
  .get()
  .then(...);

但是,您可以使用arrayUnion()来代替,如果缺少值,它将添加值,否则它不会:

Firestore.instance
  .collection('grupos')
  .document('grupoId4')
  .updateData({ 'array':FieldValue.arrayUnion('ValueToAddInArray') });

我找到了解决方案,事实证明,当知道文档 ID 时,可以执行以下操作。

firestoreRef.where(FieldPath.documentId, isEqualTo: docID).snapshots();

通过where FieldPath.documentId, isEqualTo: docID中添加,我们可以根据文档 ID 进行搜索,之后我们可以执行forEach或任何估计的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM