我正在尝试通过添加地图从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有可能吗?
答案 0 :(得分:1)
电子邮件地址中包含句点(.
)字符。如您在示例中以原始字符串形式给出时,该字符被视为字段分隔符。 Firestore所做的假设是,您想要将一个具有“ com”属性的“ name @ email”字段设置为指定对象的值。请参阅documentation中的“字段路径上的约束”。
我不认为有解决办法。在访问数据库之前,您可能需要将该点转换为其他字符(可能是电子邮件地址中不能出现的其他字符)。您使用此字段的所有查询都必须进行类似的翻译。