高级:在 Cloud Firestore 中,我有两个集合。fl_content
和fl_files
。内fl_content
,我正在尝试访问fl_files
.
详细:在 fl_content 中,每个文档都有一个名为imageUpload
. 这是一组 Firebase 文档参考。fl_files
(我需要访问的路径。)
这是我对 fl_content 的查询,我在其中访问 imageUpload 参考:
let docRef = Firestore.firestore().collection("fl_content").document(item.id)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let property = document.get("imageUpload")
print("PROPERTY \(property!)")
}
}
这会将以下内容打印到控制台:
PROPERTY Optional(<__NSArrayM 0x60000281d530>(
<FIRDocumentReference: 0x600002826220>
)
)
有了这个文档引用数组,我需要访问 fl_files。
这是我遇到麻烦的部分。
尝试:
在 if let 语句中,我尝试通过将属性转换为 DocumentReference 来访问 fl_files。
let docRef = Firestore.firestore().collection("fl_content").document(item.id)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let property = document.get("imageUpload") as? DocumentReference
print("PROPERTY \(property!)")
let test = Firestore.firestore().collection("fl_files").document(property)
}
}
无法转换“DocumentReference”类型的值?到预期的参数类型“字符串”
let docRef = Firestore.firestore().collection("fl_content").document(item.id)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let property = document.get("imageUpload") as! DocumentReference
let test = Firestore.firestore().collection("fl_files").document(property[0].documentID)
print("TEST \(test)")
}
}
“DocumentReference”类型的值没有下标
let docRef = Firestore.firestore().collection("fl_content").document(item.id)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let property = document.get("imageUpload") as! DocumentReference
let test = Firestore.firestore().collection("fl_files").document(property.documentID)
print("TEST \(test)")
}
}
无法将类型“__NSArrayM”(0x7fff87c50980)的值转换为“FIRDocumentReference”(0x10f6d87a8)。2020-02-05 12:55:09.225374-0500 数据库 1[87636:7766359] 无法将“__NSArrayM”(0x7fff87c50980)类型的值转换为“FIRDocumentReference”(0x10f6d87a8)。
越来越近!
let docRef = Firestore.firestore().collection("fl_content").document(item.id)
docRef.getDocument(completion: { document, error in
if let err = error {
print(err.localizedDescription)
return
}
let imageUpload = document?["imageUpload"] as? NSArray ?? [""]
print("First Object \(imageUpload.firstObject!)")
})
This prints: First Object <FIRDocumentReference: 0x600001a4f0c0>
以下是两个屏幕截图,可帮助说明 Firestore 数据库的外观。
最终,我需要进入file
fl_files 中的字段。如何从 imageUpload 访问它DocumentReference
?