我从 Cloud Firestore 读取一些数据(消息),在文档中我有一个timestamp时间字段。\n我有一个流:
Stream<QuerySnapshot> get chats {\n return chatCollection.document(roomid).collection("messages").snapshots();\n }\nRun Code Online (Sandbox Code Playgroud)\n用于在我的数据库中发生更新(例如新消息)时获取消息。
\n因此,当我启动应用程序时,它会从数据库读取所有数据(消息)并打印出来。\n这是每次获取新快照时我的控制台和消息的样子:
\nD/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) 我正在构建一个应用程序,用户可以在其中写入我的数据库并向其他用户提问,例如医生应用程序。医生可以回答问题的地方。
我想按日期排序问题,我想按最新和最受欢迎的问题排序。
我尝试通过以下方式订购最新的:
日期:“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 中订购数据
最好的问候,鲁斯本
我正在编写代码以将数据从颤动设置到 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)