簡體   English   中英

如何使用自定義但唯一的 ID 將數據保存到 Firebase Firestore?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM