【问题标题】:Firestore can not write date as collection nameFirestore 无法将日期写入集合名称
【发布时间】:2021-12-20 06:07:37
【问题描述】:

我正在尝试将不同股票的所有价格写到 Firestore。结构应该是这样的(虽然这可能不是最适合它的,但仍然像在 SQL 中一样考虑它):

const d1 = new Date();
const result = d1.getTime();
console.log('Epochtime',result);
database.collection("stock1").doc("exchange1").collection(date).doc('prices').set({"price":"price_value"})

现在的问题是我无法创建一个名称为包含日期的变量的集合。我尝试了所有不同类型的它,我认为纪元时间应该可以工作,因为这是一个类似于:1636213439908 的数字。我总是得到错误:Value for argument "collectionPath" is not a valid resource path. Path must be a non-empty string. 虽然完全相同的变量可以写为集合中的值。所以不确定我在这里做错了什么。

【问题讨论】:

  • 只需将纪元时间转换为字符串即可。请注意,您在阅读时需要将其转换回 long
  • 这么简单...谢谢!

标签: javascript firebase google-cloud-firestore nosql


【解决方案1】:

Firestore 中的文档 ID 必须是字符串,因此您必须将数据转换为字符串。虽然date.toString() 可以工作,但我强烈建议使用ISO-8601 format 作为日期,例如date.toISOString()。这些格式被设计成人类可读和机器可分类。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2021-07-25
    • 2017-07-06
    相关资源
    最近更新 更多