如何检查firestore文档中的数组是否为空?

ean*_*dpi 2 dart firebase flutter google-cloud-firestore

我正在用 flutter 构建一个应用程序,我想运行一个查询来确定我的 firestore 文档中的数组是否为空。有没有办法做到这一点?

这是我在 firestore 中构建的数据的图片。

在此处输入图片说明

我知道有一个arrayContains 方法,但我不确定如何检查空数组。这是我当前的代码。

_postsStream = await _firestore
        .collectionGroup('posts')
        .where('timestamp', isGreaterThanOrEqualTo: _start)
        .where('timestamp', isLessThanOrEqualTo: _end)
        .where('problems', arrayContains: )
        .snapshots();
Run Code Online (Sandbox Code Playgroud)

我暂时将 arrayContains: 留空了。请告知我将如何实施此功能。提前致谢!

小智 9

空数组默认为 [] 因此可以通过执行以下操作来实现:不要将 ' ' 用于方括号

final _database = Firestore.instance;    

return _database
          .collection('arrays')
          .document(arrId)
          .where('array', isEqualTo: [])
           // .where('array', isNull: true) can be used to check if it's null
          .snapshots()
          .map(_itemListFromSnapshot);
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案。无需购买新房产。我这样使用: ref.where('participants', '!=', []) (3认同)