【发布时间】:2021-11-29 05:49:51
【问题描述】:
我正在编写一个预约应用程序,我想将自己创建的文档存储在 Firestore 数据库中,但按时间顺序排列。这样我就可以看到我最近的预约。有什么办法可以做到这一点?我附上了用于在 firebase 中存储数据的代码。请建议对此代码进行一些修改。
Future<void> userSetup() async {
String user = FirebaseAuth.instance.currentUser?.displayName as String;
DocumentReference<Map<String, dynamic>> users =
FirebaseFirestore.instance.collection(user).doc();
final hours = time?.hour.toString().padLeft(2, '0');
final minutes = time?.minute.toString().padLeft(2, '0');
users.set({
"customerId": FirebaseAuth.instance.currentUser?.uid.toString(),
"customerName": FirebaseAuth.instance.currentUser?.displayName,
"customerEmail": FirebaseAuth.instance.currentUser?.email,
"selectedTime": '${hours}:${minutes}',
"selectedDate": DateFormat('dd/MM/yyyy').format(date!),
});
return;
}
【问题讨论】:
-
为什么要将日期和时间保存在 2 个不同的字段中,而不是一个。因为这样你就可以通过使用
orderBy()time 来检索它。 -
当然会这样做,但我想按时间顺序存储数据,因为随机生成的文档 ID 不是按时间顺序排列的。有什么办法吗
-
如何将文档 ID 命名为
appointmentTime.millisecondsSinceEoch。 ?然后它将按时间顺序保存。我按时间顺序使用相同的顺序聊天消息。 -
是的,我只这样做了,它奏效了。
-
我认为你应该在
chronological order中查询而不介意存储,只要你有一个时间戳/时间来订购
标签: flutter dart google-cloud-firestore