在我的Firestore数据库中,我已将用户的电子邮件作为文档密钥。如果我愿意,可以db.collection('users').doc('email_id')
执行一些操作。现在的问题是,当用户更新其电子邮件ID时,我找不到任何方法来更新Firestore中的document id
。
我试图做
db.collection('users').doc(old_email).update({
id: new_email
})
但这实际上创建了一个名为id
的新字段,该新电子邮件作为该文档中的值,而不是更新实际的document id
以便我可以在doc()
中传递它并获取关于用户的相同数据。
有人知道怎么做吗?如果是这样,请分享。
在发布此问题之前,我已经检查了google和firestore文档,但找不到更新文档ID的任何方法。请帮忙。
答案 0 :(得分:4)
没有用于更改现有文档ID的API,也没有用于移动文档的API。如果要将相同的内容存储在不同的文档中,则必须:
您将要在事务中运行这些操作,以确保这些操作原子完成。
答案 1 :(得分:2)
我认为没有办法更改文档ID,但是即使有办法您也做错了。该ID应该是唯一标识符,让自己成为UserID字段,例如,使用Firebase Auth使用firebase.Auth().currentUser.uid
作为Firestore中用户特定的已保存数据的ID。
我建议您总体上进行更改,以解决您的问题,更重要的是为您提供坚实的结构。 (身份验证中的UID是唯一的)