Firebase Storage: как преодолеть пользовательские ограничения утверждений (1000 байт) - PullRequest
0 голосов
/ 23 марта 2020

Я уже использую custom_claims для управления групповым доступом в хранилище Firebase. Но он имеет жесткий предел, установленный в 1000 байтов.

В моем приложении пользователь может присоединиться к N группам. Сегодня я добавляю присоединенные группы в пользовательские заявки. Каждый идентификатор groupId является сгенерированным Firestore ключом (~ 20-байтовый ключ). Таким образом, пользователь будет ограничен до 50 групп (если я считаю только ключ в утверждениях ..)!

Я хочу иметь возможность создавать столько отношений, сколько необходимо (между пользователями и группами), но поскольку правила из хранилища не могут доступ к базе данных Firestore, Каков наилучший подход для преодоления этого ограничения?

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

Спасибо

1 Ответ

1 голос
/ 23 марта 2020

Если вы не можете express логи c, используемые для защиты контента в правилах безопасности, тогда единственным вариантом является запрет прямого доступа клиентов и маршрутизация клиентов через некоторую конечную точку, чьи логи c вы можете контролировать. Это может быть Cloud Functions или какой-либо другой бэкэнд.

Помните, что:

  1. Максимальный размер полезной нагрузки ответа для Cloud Functions составляет 10 МБ, поэтому если объект может быть больше кроме этого, вам понадобится другой бэкэнд.
  2. Предоставление ссылки на объект не ограничивает доступ к этой ссылке другим, у которых может не быть доступа. Вам понадобится дополнительный способ убедиться, что ссылка работает только для человека, который ее запросил, возможно, заставив ее работать только определенное время.
...