简体   繁体   中英

How to get every post inside nested database from firebase?

Hello there I have nested database with collection(quotes)>document(uid)>collection(quote)>document(id)

When I try to fetch the quote, I can only fetch for current user. How can I loop through uid and get everything inside quote collection for every user.

My code for fetching the quotes:

func fetchQuote() {
        guard let uid = Auth.auth().currentUser?.uid else {
            return
        }
        
  Firestore.firestore().collection("quotes")
  .document(uid).collection("quote")
  .addSnapshotListener { querySnapshot, error in
          
  if let error = error {
                print("There was an error while fetch the quotes.")
                return
            }
            
            querySnapshot?.documentChanges.forEach({ change in
                if change.type == .added{
                    let data = change.document.data()
                self.quotes.append(.init(documentId:change.document.documentID, data: data))
                }
            })
            
   
        }
    }

I tried to remove the following:

.document(uid).collection("quote") 

What I did is use of .collectionGroup()

 Firestore.firestore().collectionGroup("quote").getDocuments(){ querySnapshot, error in
    if let error = error {
        print("There was an error \(error)")
        return
    }
    
    
    querySnapshot?.documentChanges.forEach({ change in
        if change.type == .added{
            let data = change.document.data()
            self.quotes.append(.init(documentId:change.document.documentID, data: data))
        }
    })
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM