Пожарная коллекция слушателей колоссального количества читает - PullRequest
0 голосов
/ 26 февраля 2019

Я реализую хранилище данных Firestore в одном из моих приложений.

У меня есть прослушиватель, который следит за обновлениями в коллекции "logs", например так:

db.collection("logs").addSnapshotListener({ (snapshot, error) in
    guard let s = snapshot else {return}
    if s.metadata.isFromCache {
        print("LOG_C \(s.documentChanges.count)")
            return
    }
    print("LOG \(s.documentChanges.count)")
    // other code
})

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

Однако при этом он потребляет примерно 1000 операций чтения.Такое ощущение, что он загружает всю историю этой коллекции для моего тестового пользователя (например, вставлено 500 документов, удалено 500 документов).Однако, даже если это произойдет, он не сообщит мне об этом - я получаю только одно сообщение «LOG 0» в консоли.

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

Любые объяснения / идеи/ предложения приветствуются.

Я бы очень хотел отладить это, просмотрев подробные журналы чтения Firestore.Однако я не могу найти такую ​​опцию в консоли: (

1 Ответ

0 голосов
/ 26 февраля 2019

В этом случае звучит так, как будто OP оставил консоль Firestore открытой при выполнении операций с базой данных.Поскольку сама консоль Firestore отражает обновления в реальном времени, она будет подвергаться чтению с течением времени при изменении текущей выбранной коллекции.

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