Есть ли способ загрузить изображение в хранилище firebase на основе значений хранилища? - PullRequest
0 голосов
/ 01 ноября 2019

Я думал, что это будет просто с Firebase, но я пока не нашел решения для этого:

У меня есть коллекция Admins в моей базе данных firestore, и я хочу ограничить папку Images в хранилище firebase, так чтоАдминистраторы могут добавлять новые изображения. Правила безопасности не позволяют мне делать «если userID находится в базе данных, то разрешать создавать».

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

Любые указатели будут оценены по достоинству!

1 Ответ

2 голосов
/ 01 ноября 2019

Что-то, что я сделал для аналогичного случая, - это использование облачной функции для синхронизации статуса администратора с Пользовательские утверждения Firebase Auth . Упрощенная версия может выглядеть примерно так:

exports.setAdminClaim = functions.firestore.document('admins/{uid}').onWrite(change => {
  if (change.after.exists) {
    return admin.auth().setCustomUserClaims(change.after.id, {admin: true});
  }

  return admin.auth().setCustomUserClaims(change.after.id, {admin: false});
});

Это позволит вам затем использовать пользовательское утверждение в ваших правилах хранения:

allow write: if request.auth.token.admin == true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...