Это поведение ошибка.Я получаю то же самое, используя javascript с PWA.
Я делал тесты и заметил, что проблема возникает при использовании постоянства в firestore.При использовании onSnapshot это выполняется 2 раза при его запуске, если я деактивирую постоянство firestore, ответ остается пустым, как и ожидалось, но при включенном постоянстве отображается результат кеша, затем выполняется обновление события onSnapshot,но так как чтение запрещено правилом в консоли Google, оно не обновляет результат с помощью события (onCollectionUpdate), поэтому вы читаете данные, которые не должны отображаться.
Это происходит, когдаЕсли данные находятся в кеше ранее, то если приложение используется на устройстве впервые, правило работает отлично, поскольку в кеше нет данных ранее.Я считаю это поведение ошибкой, потому что оно должно уважать правило даже с кешем, зная, что оно стремится ограничить чтение документов.
Чтобы напечатать ошибку на onSnapshot:
componentDidMount() {
this.unsubscribeDate = this.ref.onSnapshot(this.onCollectionUpdate, this.onErrorUpdate);
}
onErrorUpdate = error => {
console.log(error);
};