繁体   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