Правила Firestore для веб-приложения опроса и общей ссылки - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь создать веб-приложение для опросов с использованием firebase и иметь в своем распоряжении определенный поток пользователей, но я не знаю, можно ли это сделать:

В этом приложении вы должны зарегистрироваться / войти и построить опрос, который будет храниться так:

collection("creator").doc("creatorID").collection("surveyData"). 

После сохранения данных вы получите ссылку (например, webapp.com/forUser/secret/surveyName), которой затем сможете поделиться со своими друзьями. Эта ссылка открывает то же веб-приложение (из другой точки входа), но с анонимной аутентификацией, гидратацией и отображением только содержимого этого одного опроса от этого одного пользователя.

Здесь есть две основные проблемы:

  1. Указание веб-приложения пользователя на нужные данные по ссылке и возможность доступа только к одному опросу.

  2. Запись ответов пользователя в файлы создателя

Для 1) Могу ли я передать секрет по ссылке (могу ли я использовать для этого идентификатор creatorID или это небезопасно / безопасно?), Который указывает пользователю на данные этого опроса (без предоставления какого-либо другого доступа)? Если да, то как это сделать без жесткого кодирования секрета в правилах аутентификации?

Для 2) я мог бы использовать двухэтапный процесс: Пользователь отвечает на вопросы опроса, и результаты сохраняются в следующем виде:

collection("user").doc("secret").collection("surveyData"). 

Когда создатель открывает приложение позже (или через облачные функции), приложение получает все ответы из общего секретного документа. Можно ли это сделать за один шаг?

Надеюсь, это как-то имеет смысл. Может быть, мои идеи слишком сложны, и есть простой способ сделать это или есть лучшие практики в этом отношении?

Спасибо за вашу помощь!

...