[英]Invalid document reference. Document references must have an even number of segments, but likes has 1
[英]Invalid document reference. Document references must have an even number of segments, but Users has 1'
我正在將 Firestore 與 SwiftUI 一起使用,並嘗試進行一個簡單的查詢以從子集合中獲取文檔:
struct MyCardsView: View {
@State var myCards = [MyCard]()
@State var show: Bool = false
@State var selectedId: String = ""
var body: some View {
VStack {
List(self.myCards){i in
Button(action: {
self.selectedId = i.card_id
self.show.toggle()
}) {
MyCardCell(cardId: i.card_id)
}
}
}
.onAppear {
let db = Firestore.firestore()
if let uid = Auth.auth().currentUser?.uid {
db.collection("Users").document(uid).collection("Fiches").order(by: "date", descending: true).addSnapshotListener { (snap, err) in
guard let documents = snap?.documents else {
print("No documents")
return
}
self.myCards = documents.compactMap({ (queryDocumentSnapshot) -> MyCard? in
return try? queryDocumentSnapshot.data(as: MyCard.self)
})
}
}
}
.sheet(isPresented: self.$show){
CardsView(cardId: self.selectedId)
}
}
}
這種觀點一直有效,但從昨天開始,我收到以下非常奇怪的錯誤:
由於未捕獲的異常“NSInternalInconsistencyException”而終止應用程序,原因:“FIRESTORE INTERNAL ASSERTION FAILED:文檔引用無效。 文檔引用必須有偶數個段,但用戶有 1'
我真的不明白,因為路徑是正確的,並且子集合存在......
我有同樣的問題,但只在我的畫布預覽中。 該應用程序運行良好。 我已經查看了我的代碼並認為它可以歸結為這個代碼塊,因為只有一個對集合的引用而不是對文檔 ID 的引用,但是在 Firebase 文檔中,它說這段代碼很好,即使它只有一個段。 (雖然我只是猜測)
public func fetchAllArtists(completion: @escaping ([Artist]) -> Void) {
var _artists: [Artist] = []
database
.collection(ContainerNames.artists)
.getDocuments { snapshot, error in\
guard error == nil else { return }
for document in snapshot!.documents {
// do stuff
completion(_artists)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.