我是Firestore / Firebase的新手,我正在尝试创建一个新文档,其中一个字段是document reference
到另一个文档。我已经阅读了Firebase的所有指南和示例,但没有找到任何内容......
另外,当我检索我创建的这个文档时,我将能够访问我在里面添加的引用内容。我不知道该怎么做。
以下是我为创建部分
尝试的一些代码 let db = Firestore.firestore()
// Is this how you create a reference ??
let userRef = db.collection("users").document(documentId)
db.collection("publications").document().setData([
"author": userRef,
"content": self.uploadedImagesURLs
]) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}
答案 0 :(得分:6)
你只是错过了一步。我花了一段时间才弄明白。
首先,存储一个变量DocumentReference!
var userRef: DocumentReference!
然后,你想要创建一个指向文档ID的指针 - 从那个<创建一个DocumentReference - 这个你缺少的部分
if let documentRefString = db.collection("users").document(documentId) {
self.userRef = db.document("users/\(documentRefString)")
}
最后,继续将数据保存到数据库
db.collection("publications").document().setData([
"author": userRef,
"content": self.uploadedImagesURLs
]) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}
希望有所帮助!
答案 1 :(得分:0)
This way works perfectly for me:
let db = Firestore.firestore()
let documentRefString = db.collection("users").document(documentID)
let userRef = db.document(documentRefString.path)
Then, when you will set the data:
db.collection("publications").document().setData([
"author": userRef,
"content": self.uploadedImagesURLs
]) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}