如何防止Cloud Firestore拆分地图密钥?

时间:2019-01-18 05:45:02

标签: javascript node.js firebase google-cloud-firestore google-cloud-functions

我正在尝试通过添加地图从Cloud Function更新Firestore中的文档,如下所示:

const data = {
        [email]: {
            somedata: somedata,
            somedata: somedata
        }
    };
docRef.update(data)

问题在于Firestore正在拆分电子邮件并创建嵌套地图。例如,如果电子邮件为name@email.com,则存储在Firestore中的值为:

name@email
  com
    somedata: somedata
    somedata: somedata

我希望不要拆分电子邮件。 Firestore有可能吗?

1 个答案:

答案 0 :(得分:1)

电子邮件地址中包含句点(.)字符。如您在示例中以原始字符串形式给出时,该字符被视为字段分隔符。 Firestore所做的假设是,您想要将一个具有“ com”属性的“ name @ email”字段设置为指定对象的值。请参阅documentation中的“字段路径上的约束”。

我不认为有解决办法。在访问数据库之前,您可能需要将该点转换为其他字符(可能是电子邮件地址中不能出现的其他字符)。您使用此字段的所有查询都必须进行类似的翻译。