How to update the document ID in firebase firestore? [duplicate]

▼魔方 西西 提交于 2020-05-08 09:18:46

问题


in my firestore database, I've made the user's email as the document key. Do if I want I cal do db.collection('users').doc('email_id') to perform some action. Now the problem is when the user is updating their email id, I am not finding any way to update the document id in firestore.

I've tried to do

db.collection('users').doc(old_email).update({
  id: new_email
})

But that actually created a new field called id with the new email as value inside that document instead of updating the actual document id so that I can pass it within doc() and get the same data about the user.

Does anyone know how to do it? If so, please do share.

before posting this question I have checked google and firestore docs but didn't find any way to update the document id. Please help.


回答1:


I dont think there is a way to Change the Document ID, but even if there is a way what you do is horribly wrong. The ID should be a Unique Identifier, make yourself a UserID Field, for example with Firebase Auth use firebase.Auth().currentUser.uid as the ID of your User specific saved data in the Firestore.

I Suggest you to Change that in General that solves your Problem and more importantly gives you a solid structure. (The UID from the Auth is Unique)




回答2:


There is no API to change the ID of an existing document, nor is there an API to move a document. If you want to store the same contents in a different document, you will have to:

  1. Read the document from its existing key.
  2. Write the document under its new key.
  3. Delete the document under its old key.

You'll want to run these operations in a transaction, to ensure the operations complete atomically.



来源:https://stackoverflow.com/questions/52114590/how-to-update-the-document-id-in-firebase-firestore

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!