Как выполнить запрос группового сбора с помощью Firestore? (IOS) - PullRequest
0 голосов
/ 10 апреля 2020

Привет всем, это мой первый раз, когда я задаю вопрос здесь, поэтому, если сообщение неверно и т. Д. c ... Я заранее извиняюсь. Я работаю над проектом, в котором студенты университета, в котором я go смогу попросить советника-резидента, чтобы разблокировать их комнаты для них. Я застрял на том, как запросить всю (root) коллекцию, чтобы найти вложенную коллекцию с полем, которое содержит значение, соответствующее моему идентификатору коллекции. Я видел много ресурсов по Stack, Firebase, и я пытался их реализовать, но у меня ничего не получилось.

Вот изображение:

Доступ к подколлекции

Мой фрагмент кода:

db.collectionGroup("Dorms").whereField("UID", isEqualTo: UID).getDocuments { (snapshot, error) in    

// here is where i'd like to gather the fields subcollection/document and then store them as variables

Заранее спасибо за любая помощь и совет. Это очень ценится!

1 Ответ

0 голосов
/ 10 апреля 2020

Я впервые публикую ответ, поэтому надеюсь, что это будет несколько полезно, но по своему опыту при запросе файлов в коллекции я создаю forloop, а затем использую операторы let для получения переменных из документа

var someVariable : Int


db.collectionGroup("Dorms").whereField("UID", isEqualTo: "UID").getDocuments { (snapshot,  error) in
        if let e = error {
            //this is printing the error if there is one getting the documents
            print("There was an error getting the documents \(e)")
        } else {
            if let dorms = snapshot?.documents { //accesses all the documents in the collection
                for doc in dorms {
                    let data = doc.data() //Gets all the information in the document
                    //Here you would use an if let to create variables from the information in the data
                    //For example
                    if let dormRoomNumber = data["dormRoomNumber"]/*You'll put the name of your field in here, so whatever you have named it in firestore*/] as? Int //make sure the the data type here mathces the data type in your firestore database
                    {
                        someVariable = dormRoomNumber
                    }
                }
            }

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...