如何使用Flutter过滤Firestore文档?

TuGordoBello

我按照教程创建聊天。以下是将消息插入Firestore的代码

var _firebaseRef = Firestore.instance.collection("chats");
void sendMessage(String message, String idFrom, ProductModel productModel,
  String fromName) {
String groupChatId;
String idTo = productModel.userId;
if (idFrom.hashCode <= productModel.userId.hashCode) {
  groupChatId = '$idFrom-$idTo';
} else {
  groupChatId = '$idTo-$idFrom';
}

var documentReference = _firebaseRef
    .document(groupChatId)
    .collection(groupChatId)
    .document(DateTime.now().millisecondsSinceEpoch.toString());

Firestore.instance.runTransaction((transaction) async {
  await transaction.set(
    documentReference,
    {
      'message': message,
      'idFrom': idFrom,
      "productId": productModel.id,
      "createdAt": utils.currentTime(),
      'timestamp': DateTime.now().millisecondsSinceEpoch.toString(),
      "fromName": fromName,
      "idTo": productModel.userId
    },
  );
});
}

正如可以看到groupChatId要使用上DocumentIdCollectionId是2点的ID(发送器和接收器)的组合物。

这是它的样子: 在此处输入图片说明

消除每条消息的代码可以正常工作

 String groupChatId;
if (idFrom.hashCode <= idTo.hashCode) {
  groupChatId = '$idFrom-$idTo';
} else {
  groupChatId = '$idTo-$idFrom';
}

return _firebaseRef
    .document(groupChatId)
    .collection(groupChatId)
    .orderBy('timestamp', descending: true)
    .snapshots();

在该图片中,您可以看到1条消息和1条消息的聊天,我试图显示当前用户的每次聊天,为此,我将过滤chat集合中的所有文档,因此用户可以单击它并在聊天时获取列表消息详细信息页面。

我不知道该怎么做,如果您有更好的聊天方法,我将不胜感激

cc69cc

您可以调用getDocumentsthen方法,在其中可以进行验证,在这种情况下,如果documentID包含ID ,则可以进行验证像这样

Firestore.instance.collection("chats").getDocuments().then((value) {
      print(value);
      value.documents.forEach((element) {
        if (element.documentID.contains(currentUserId)) {
          DocumentSnapshot document = element;
          print(document);
        }
      });
    });

应该可以

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Flutter在Firestore中的uid文档中创建集合?

来自分类Dev

如何使用flutter在Firestore中的文档中添加地图?

来自分类Dev

如何使用flutter从文档的Firestore数组中获取数据?

来自分类Dev

无法使用Flutter从Firestore检索文档

来自分类Dev

Flutter:使用Streambuilder <QuerySnapshot>时如何在Firestore中获取特定文档

来自分类Dev

如何使用表单验证通过Flutter验证集合Firestore中是否存在文档

来自分类Dev

如何从Flutter中使用Firestore中的唯一文档ID进行查询?

来自分类Dev

如何使用Flutter在Firestore中删除具有特定值的多个文档

来自分类Dev

如何使用Flutter将包含地图数据的文档添加到Firestore

来自分类Dev

如何使用Flutter在Firestore中检查多个文档中的特定值

来自分类Dev

如何使用flutter从Firestore中检索具有其ID的文档

来自分类Dev

如何使用 flutter cloud_firestore 插件从 DocumentID 获取文档引用

来自分类Dev

如何在Flutter中获取Firestore文档的Documentid

来自分类Dev

如何读取文档 firestore -flutter 中的数据引用

来自分类Dev

使用Flutter从Firebase Firestore查询中获取单个文档

来自分类Dev

使用 Flutter 访问 Firestore 中的第 n 个文档

来自分类Dev

Flutter和Cloud-Firestore:如何读取链接到Flutter FutureBuilder的Firestore文档

来自分类Dev

如何使用 lodash _.filter() 过滤 firestore 集合?

来自分类Dev

如何使用Flutter / Dart根据选择将单个Firestore文档ID传递给另一个类?

来自分类Dev

Flutter Firestore:如何避免在编写/更新同时可供多个用户使用的文档时发生冲突?

来自分类Dev

如何在Flutter中按更改类型识别Firestore流文档?添加,删除,修改文档?

来自分类Dev

使用StreamBuilder来获取Firestore文档,该文档包含Flutter中的地图列表

来自分类Dev

如何在ElasticSearch上对嵌套文档使用构面过滤

来自分类Dev

如何使用过滤器从ouchdb中删除文档?

来自分类Dev

如何使用相同的嵌套属性值过滤文档

来自分类Dev

Elasticsearch:如何使用独特,排序,分页,过滤来搜索文档

来自分类Dev

如何使用 RegEx 过滤 html 文档中的链接?

来自分类Dev

如何通过Android Cloud Firestore中的集合过滤器获取文档数

来自分类常见问题

如何使用Cloud Firestore获取集合中文档的数量

Related 相关文章

  1. 1

    如何使用Flutter在Firestore中的uid文档中创建集合?

  2. 2

    如何使用flutter在Firestore中的文档中添加地图?

  3. 3

    如何使用flutter从文档的Firestore数组中获取数据?

  4. 4

    无法使用Flutter从Firestore检索文档

  5. 5

    Flutter:使用Streambuilder <QuerySnapshot>时如何在Firestore中获取特定文档

  6. 6

    如何使用表单验证通过Flutter验证集合Firestore中是否存在文档

  7. 7

    如何从Flutter中使用Firestore中的唯一文档ID进行查询?

  8. 8

    如何使用Flutter在Firestore中删除具有特定值的多个文档

  9. 9

    如何使用Flutter将包含地图数据的文档添加到Firestore

  10. 10

    如何使用Flutter在Firestore中检查多个文档中的特定值

  11. 11

    如何使用flutter从Firestore中检索具有其ID的文档

  12. 12

    如何使用 flutter cloud_firestore 插件从 DocumentID 获取文档引用

  13. 13

    如何在Flutter中获取Firestore文档的Documentid

  14. 14

    如何读取文档 firestore -flutter 中的数据引用

  15. 15

    使用Flutter从Firebase Firestore查询中获取单个文档

  16. 16

    使用 Flutter 访问 Firestore 中的第 n 个文档

  17. 17

    Flutter和Cloud-Firestore:如何读取链接到Flutter FutureBuilder的Firestore文档

  18. 18

    如何使用 lodash _.filter() 过滤 firestore 集合?

  19. 19

    如何使用Flutter / Dart根据选择将单个Firestore文档ID传递给另一个类?

  20. 20

    Flutter Firestore:如何避免在编写/更新同时可供多个用户使用的文档时发生冲突?

  21. 21

    如何在Flutter中按更改类型识别Firestore流文档?添加,删除,修改文档?

  22. 22

    使用StreamBuilder来获取Firestore文档,该文档包含Flutter中的地图列表

  23. 23

    如何在ElasticSearch上对嵌套文档使用构面过滤

  24. 24

    如何使用过滤器从ouchdb中删除文档?

  25. 25

    如何使用相同的嵌套属性值过滤文档

  26. 26

    Elasticsearch:如何使用独特,排序,分页,过滤来搜索文档

  27. 27

    如何使用 RegEx 过滤 html 文档中的链接?

  28. 28

    如何通过Android Cloud Firestore中的集合过滤器获取文档数

  29. 29

    如何使用Cloud Firestore获取集合中文档的数量

热门标签

归档