相关疑难解决方法(0)

云 Firestore 中的时间字段 serverTimestamp() 在第一个快照上返回 null

我从 Cloud Firestore 读取一些数据(消息),在文档中我有一个timestamp时间字段。\n我有一个流:

\n
Stream<QuerySnapshot> get chats {\n    return chatCollection.document(roomid).collection("messages").snapshots();\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

用于在我的数据库中发生更新(例如新消息)时获取消息。

\n

因此,当我启动应用程序时,它会从数据库读取所有数据(消息)并打印出来。\n这是每次获取新快照时我的控制台和消息的样子:

\n
D/ViewRootImpl@a0e5145[MainActivity]( 3045): MSG_RESIZED: frame=Rect(0, 0 - 1440, 2560) ci=Rect(0, 96 - 0, 1164) vi=Rect(0, 96 - 0, 1164) or=1\nD/ViewRootImpl@a0e5145[MainActivity]( 3045): Relayout returned: old=[0,0][1440,2560] new=[0,0][1440,2560] result=0x1 surface={valid=true 492514541568} changed=false\nI/flutter ( 3045): DEBUG: TEST-MESSAGE what??? 2020-10-09 22:30:12.249\nI/flutter ( 3045): DEBUG: TEST-MESSAGE \xce\xbb\xce\xbf\xce\xbb 2020-10-09 21:59:58.212\nI/flutter ( 3045): DEBUG: TEST-MESSAGE gamieste 2020-10-09 22:33:10.902\nI/flutter ( 3045): DEBUG: TEST-MESSAGE holly 2020-10-09 22:26:39.672\nI/flutter ( 3045): DEBUG: TEST-MESSAGE \xce\xb3\xcf\x86 …
Run Code Online (Sandbox Code Playgroud)

timestamp firebase flutter google-cloud-firestore

8
推荐指数
1
解决办法
3200
查看次数

如何在 Flutter 中从 Firestore 订购数据,orderBy 订购不正确

我正在构建一个应用程序,用户可以在其中写入我的数据库并向其他用户提问,例如医生应用程序。医生可以回答问题的地方。

我想按日期排序问题,我想按最新和最受欢迎的问题排序。

我尝试通过以下方式订购最新的:

日期:“2019 年 9 月 29 日”

Firestore.instance
        .collection("Questions")
        .orderBy("date", descending: true) // 1 will be last, 31 will be latest
        .snapshots(),
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。所以我想知道如何从 firebase 的查询中正确排序数据。或者我是否必须将日期存储在 firebase 中,然后再进行转换?

此外,我想根据有多少用户通过以下方式观看了该特定问题,对最受欢迎的问题进行排序:

问题视图:“3”,问题视图:“1032”等

Firestore.instance
        .collection("Questions")
        .orderBy("questionsView")
        .snapshots(),
Run Code Online (Sandbox Code Playgroud)

但这也不能正确排序。

我看到了传奇人物弗兰克·冯·普芬 (Frank von Puffen) 的一篇很棒的帖子,但我并没有真正理解这一点,所以我想知道是否有人可以帮助我解决这个问题。

这是他的帖子: 在 FireStore 中订购数据

最好的问候,鲁斯本

firebase flutter google-cloud-firestore

5
推荐指数
1
解决办法
4710
查看次数

如何将文档创建的时间戳从 Flutter 添加到 Firestore

我正在编写代码以将数据从颤动设置到 Firestore。我想要的是为创建数据的时间添加一个字段,例如“createdOn”。Flutter 的 DateTime.now() 需要从设备中获取时间,但我想获取服务器端时间。我的代码如下:

Future updateDataModel(String userName, String userPosition, String userLocation) async{
  return await userCollection.document().setData({
      'userName' : userName,
      'userPosition' : userPosition,
      'userLocation' : userLocation
    });
  }
Run Code Online (Sandbox Code Playgroud)

如果我可以有一个像下面这样的字段来获取 firebase 的时间戳,那将是一个很大的帮助。

   'createdOn' : TimestampHere,
Run Code Online (Sandbox Code Playgroud)

firebase flutter google-cloud-firestore

0
推荐指数
1
解决办法
4352
查看次数