Javascript 如果没有';firestore中是否存在基于TIMSTEMP的文件?
我有一个挑战,我不知道如何实现。因此,我无法提供任何代码。 我想跟踪与时间戳相关的训练集(重量、重复次数)Javascript 如果没有';firestore中是否存在基于TIMSTEMP的文件?,javascript,reactjs,google-cloud-firestore,Javascript,Reactjs,Google Cloud Firestore,我有一个挑战,我不知道如何实现。因此,我无法提供任何代码。 我想跟踪与时间戳相关的训练集(重量、重复次数) [ { weights: 15, repeats: 10, training_date: firebase.Timestamp.fromDate(new Date()) }, { weights: 15, repeats: 9, training_date: fireba
[
{
weights: 15,
repeats: 10,
training_date: firebase.Timestamp.fromDate(new Date())
},
{
weights: 15,
repeats: 9,
training_date: firebase.Timestamp.fromDate(new Date())
},
{
weights: 12,
repeats: 10,
training_date: firebase.Timestamp.fromDate(new Date())
},
]
这可能是一次3盘的训练。当我在另一天训练时,时间戳(Y.m.d)会改变。根据这种逻辑,我想将训练集分组到训练集组,然后查询这些组
由于我来自MySQL,这个挑战对我来说很艰难。
我不知道如何理解这种逻辑
我考虑添加带有时间戳(Y.m.d)作为id和子集合的文档。但是,如果id已经存在,我不知道创建文档或附加到文档集合的代码会是什么样子(React code)。我强烈建议不要使用日期作为文档id。这只会给未来带来问题。我最好接受Firestore提供的随机ID,并将日期放在文档的一个字段中。如图所示。然后,您可以在对集合的查询中使用该日期来查找该日期的所有培训
add()
将为您提供该随机ID:
firestore.collection("your-collection").add({
weights: 15,
repeats: 10,
training_date: "YYYYMMDD"
})
请注意,日期是一个格式化字符串,因为时间戳表示的是纳秒精度的时间点,而不是整个日期。另请注意,日期格式将年份放在格式的第一位
您现在可以找到某个日期的所有培训:
firestore.collection("your-collection").where("training_date", ==, "20200423")
然后可以按时间顺序排序:
firestore.collection("your-collection").orderBy("training_date")
一切正常,但当我使用orderBy()时,我得不到任何数据。当我删除它时,一切都在那里。如果您有新问题,请发布一个新问题,详细描述什么没有按照您期望的方式工作,以及您的代码和数据。