【发布时间】:2021-04-03 05:19:05
【问题描述】:
我试图通过将唯一 ID 设为当前日期来使每个订单都独一无二。由于用户可以多次选择同一个服务,我希望将重复的订单作为不同的订单写入数据库。
我无法强文本将孩子设为当前日期。问题是什么? 请帮帮我。
onPressed: () {
final User _firebaseUser = firebaseAuth.currentUser;
databaseReference
.child("users")
.child(_firebaseUser.uid)
.child("orders")
.child(DateTime.now().toString())
.set({
"service_type" : widget.serviceType.trim(),
"service_price" : widget.servicePrice,
"first_name" : firstNameController.text.trim(),
"last_name" : lastNameController.text.trim(),
"phone" : phoneController.text.trim(),
"county" : countyNameController.text.trim(),
"sub_county" : subCountyNameController.text.trim(),
"exact_location" : _currentLocation.trim(),
});
showInSnackBar('Your order will be added in less thhan 1 hour');
Navigator.push(context, MaterialPageRoute(builder: (context) => HomeScreen()),);
},
【问题讨论】:
-
您希望它有什么不同?您是否尝试记录
DateTime.now().toString()的值? -
print(DateTime.now().toString());结果是[ ] I/flutter ( 6303): 2020-12-25 01:41:49.539140 -
当然,firebase 有一个“在这里,保留这个,并给它一个唯一的 ID”操作。 DateTime 绝对不能保证是唯一的。编辑:是的,确实如此:stackoverflow.com/questions/28822054/…
-
如果你想要一个按时间排序的密钥,你真的应该使用
push()来生成它。然后,您可以根据需要将日期值存储在子值中。
标签: firebase flutter dart firebase-realtime-database