[英]how save data to Firebase Firestore with a custom but unique Id?
在 swift 中使用 Firebase,具有:
let ref = dbLocations.collection("Data").document()
ref.setData(data)
添加了文檔 ID 的數據,例如40rprS6NshDHhZiI8YxJ
我如何生成一個 ID 作為“location1”“location2”或其他東西,但要保證它在數據庫中是唯一的?
如果要設置自己的 ID,則只需在document()
中指定它,如下所示:
let ref = dbLocations.collection("Data").document("CUSTOM_ID")
ref.setData(data);
但是,如果文檔已經存在,這將覆蓋文檔,因此您必須在寫入數據之前檢查文檔是否存在。 您可以使用.setData(data, merge: true)
因此,如果文檔存在,它將更新它,而不是完全替換當前數據(如果符合您的要求)。
如何將 ID 生成為“location1”或“location2”
在 Firestore 中,使用順序文檔 ID被認為是一種反模式:
不要使用單調遞增的文檔 ID,例如:
- 客戶 1、客戶 2、客戶 3、...
- 產品 1、產品 2、產品 3、...
這種順序 ID 可能會導致影響延遲的熱點。
因此,您可以創建自己的唯一 ID,只要您 100% 確定這些 ID 是唯一的。
此外,每次調用.document()
而不傳遞任何參數時,都會生成一個新的文檔 ID。 如果您需要自定義 ID,則應考慮使用:
let ref = dbLocations.collection("Data").document("idOfYourChoice")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.