почему я по-прежнему получаю удаленные документы при получении данных с использованием приемника из Firestore в Swift? - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь создать приложение для событий.и я добавляю новое поле в мои документы событий.Я пытаюсь добавить поле "место встречи" для своих документов событий

, поэтому перед запуском приложения я удаляю все доступные данные в моей базе данных Firestore.Но когда я возвращаю свои данные обратно в приложение, говорят, что «место проведения» равно нулю, кажется, что поле «место проведения» не существует, хотя на самом деле поле «место проведения» существует в моей базе данных пожарного депо.

Я подозреваю, что мое приложение все еще получает мои удаленные документы.вот почему

вот код, который я использую:

enum FirestoreCollectionReference {
    case users
    case events
    case cities
    case APIKey

    private var path : String {
        switch self {
        case .users : return "users"
        case .events : return "events"
        case .cities : return "cities"
        case .APIKey : return "secretAPIKeyKM"
        }
    }

    func reference () -> CollectionReference {
        return Firestore.firestore().collection(path)
    }
}


FirestoreCollectionReference.events.reference()
                .whereField("city", isEqualTo: selectedCity)
                .whereField("eventType", isEqualTo: selectedEventType)
                .whereField("coordinate", isGreaterThan: lesserGeopoint)
                .whereField("coordinate", isLessThan: greaterGeopoint)
                .order(by: "coordinate")
                .order(by: "dateTimeStart", descending: true)
                .limit(to: 20)
                .addSnapshotListener { (snapshot, error) in

                    if let error = error {
                        completion(nil,eventListener)
                        print("Error when observing events document: \(error.localizedDescription)")
                    } else {
                        print("Successfully get events data from Firestore by Listener")

                        guard let documentsSnapshot = snapshot else {
                            completion(nil, eventListener)
                            return
                        }


                        let eventDocuments = documentsSnapshot.documents

                        print("the number of documents: \(eventDocuments.count)")


                        var eventsArray = [EventKM]()

                        for document in eventDocuments {
                            let eventDictionary = document.data()
                            let theEvent = EventKM(dictionary: eventDictionary)
                            eventsArray.append(theEvent)
                        }

                        completion(eventsArray,eventListener)

                    }

            }



        }

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

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

кажетсяданные кешируются в моем приложении для iOS.не так ли?или это ошибка, поскольку Firestore все еще находится в бета-версии?Мне нужно понять, почему и как решить эту проблему, чтобы лучше понять Firebase.Заранее спасибо.

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