Swift - Cloud Firestore中的唯一ID

8

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

是否有类似于Cloud Firestore的方法可以做到这一点?

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


可能是Firestore:如何在集合中获取随机文档的重复问题。 - Achref Gassoumi
@AchrefGassoumi,那个问题与这个问题没有真正的关系。在这里,用户正在询问如何在Firestore中生成随机节点键。在您链接的问题中,用户是如何从数据库中随机选择节点(与键无关)。但我的问题是 - Firestore在存储具有集合和文档的数据时具有非常不同的思维方式,并且真正扩展了父->子模型,这消除了对随机节点键的依赖。您能否提供一个用例,说明为什么需要随机字符串? - Jay
2个回答

10
如果您没有显式提供文档的ID,我们的SDK将会自动生成一个随机的ID给您。
// 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)")
    }
}

1
但如果它不是文档路径,我还能用什么方式生成它呢? - Fuad Adetoro
我不明白你的问题在哪里?它还能在哪里呢?请记住,Cloud Firestore 是以集合和文档(可以拥有自己的集合和文档)的结构来组织数据的,而不是作为一个巨大的 JSON 树。 - Dan McGrath
Firestore有没有类似queryStarting(atValue: String, childKey: String)的查询方法? - Fuad Adetoro
最好将其他问题作为新问题提出,而不是在评论中提问。这样更多的人会看到它/找到它。 - Dan McGrath

6

生成随机 ID,

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接