Быстрые вложенные запросы Firebase и параллелизм в iOS - PullRequest
0 голосов
/ 27 июня 2019

Хорошо, сейчас я действительно злюсь на это, может быть, потому что у меня нет хорошего концептуального понимания этой темы.Я хочу получить доступ к записи друзей вошедшего в систему пользователя.Я уже выбираю друзей вошедшего в систему пользователя.

Затем я использую fetchedFriend.uid для поиска поста в другой коллекции Firebase с именем ("posts").

Менеджер - это то место, где у меня есть логика для поиска друзей.

Я не могу получить эти сообщения из firebase.Вот код:

    let db = Firestore.firestore()
    let ref = db.collection("Posts")

 Manager.fetchFriends(viewer: loggedInUser) { (fetchedFriends) in
//I am getting fetchedFriends and the uid

        for friend in fetchedFriends {

            guard let friendUID = friend.uid else { return }
            print(friendUID)

                let collectionref = ref.whereField("authorID", isEqualTo: friendUID)
                collectionref.getDocuments(completion: { (querySnapshot, error) in
                    if let error = error {
                        print(error)
                        return
                    }

                    guard let snapshot = querySnapshot else { return }
                    print(snapshot.count)
                })
            }
        }

Как вы можете видеть, я использую uid в цикле for, запрашивая "authorID" == "friendUID".Затем я беру документы, но их количество равно 0.

У меня есть три поста в базе данных, так что проблем не должно быть.

Любая помощь здесь будет оценена.Я был бы рад, если бы кто-нибудь мог объяснить параллелизм в этом конкретном примере и как решить эту проблему.

...