Правила безопасности Firestore предоставляют доступ на уровне документа. Таким образом, либо пользователь может прочитать весь документ, либо он не может ничего прочитать в этом документе. Нет никакого способа предоставить пользователям доступ только к части документа.
Это означает, что вы не можете запросить что-то, что клиент не может прочитать. Таким образом, в вашей текущей структуре, если пользователю потребуется выполнить запрос на geoHash
, он также сможет прочитать это поле.
Единственная альтернатива - не разрешать клиенту выполнять запросы, а вместо этого делать это. запросы к серверу (например, в облачных функциях). Для этого вы должны хранить геоха sh для каждого пользователя в отдельном документе (скажем, в коллекции под названием locations
). Облачная функция затем запрашивает эту коллекцию и возвращает пользователю реальные документы пользователя (которые больше не содержат геоху sh).