【问题标题】:Swift - Unique ID in Cloud FirestoreSwift - Cloud Firestore 中的唯一 ID
【发布时间】:2018-04-23 22:39:18
【问题描述】:

我在使用 Cloud Firestore 生成随机唯一 ID 时遇到问题。以前我使用实时数据库并生成随机字符串,我使用childByAutoID().key

有没有办法为 Cloud Firestore 做类似的事情?

正如 Jay 在 cmets 中所说,这不是重复的,因为我正在尝试生成随机字符串,而不是尝试获取随机文档。

【问题讨论】:

  • @AchrefGassoumi 这个问题与这个问题并没有真正的关系。在这里,用户询问如何在 Firestore 中生成随机节点密钥。在您链接的问题中,用户是如何从数据库中随机选择节点(与键无关)。不过,我的问题是——Firestore 有一个真正不同的思维方式来存储带有集合和文档的数据,并且真正扩展了父->子模型,它消除了对随机节点键的依赖。您能否提供一个用例说明为什么需要随机字符串?

标签: swift database firebase google-cloud-firestore


【解决方案1】:

如果您创建的文档没有明确的 Id,我们的 SDK 会自动为您随机生成一个。

// Add a new document with a generated id.
var ref: DocumentReference? = nil
ref = db.collection("messages").addDocument(data: [
    "sender": "<my_senders_id>",
    "recipient": "<my_recipient_id>",
    "message": "Hello from Google Cloud Platform & Firebase!",
    "status": "unread"
]) { err in
    if let err = err {
        print("Error adding document: \(err)")
    } else {
        print("Document added with ID: \(ref!.documentID)")
    }
}

【讨论】:

  • 但是如果它不是一个文档路径,我还能如何生成它?
  • 我没有听懂你的问题?还会在哪里?请记住,Cloud Firestore 的结构是集合和文档(可以有自己的集合和文档),而不是巨大的 JSON 树。
  • 有没有办法为 Firestore 做 queryStarting(atValue: String, childKey: String)?
  • 最好将其他问题作为新问题而不是在 cmets 中提出。更多人会以这种方式看到/找到它。
【解决方案2】:

要生成随机id,

let ref = db.collection("somePath")
let docId = ref.document().documentID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2018-11-16
    • 2018-12-26
    • 2016-01-15
    • 2020-12-11
    • 2021-09-22
    相关资源
    最近更新 更多