разрешение пожарной части с расстоянием GPS - PullRequest
0 голосов
/ 22 марта 2020

Можно ли написать правило для предотвращения чтения документа, если местоположение пользователя gps превышает 10 метров?
коллекция - это "магазин", а документ (идентификатор документа - это автоматически сгенерированный идентификатор) содержит поля GPS location

1 Ответ

0 голосов
/ 22 марта 2020

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

Шаги, которые я могу придумать:

  1. На устройстве определите местоположение пользователя.
  2. Отправьте это местоположение в облачную функцию (или другую доверенную среду, такую ​​как сервер, которым вы управляете).
  3. Убедитесь, что пользователь действительно находится на каким-то образом это местоположение.
  4. Установите местоположение в профиле пользователя как пользовательское утверждение, как показано здесь .
  5. Ответьте клиенту, что его профиль был обновлен.
  6. Вернувшись на устройство, используйте этот ответ, чтобы обновить sh идентификатор токена, чтобы он содержал информацию о местоположении.
  7. Отправьте запрос в базу данных, которая теперь будет содержать это местоположение. информация.
  8. Убедитесь, что запрошенный документ (ы) находится в требуемом диапазоне в правилах безопасности, сравнив информацию в запросе / запросе с данными в документе (ах).

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

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