Nativescript: как войти в систему как администратор и управлять учетной записью пользователя в Firebase - PullRequest
0 голосов
/ 19 февраля 2019

Я изо всех сил пытаюсь найти решение о том, как использовать службы администрирования Firebase для управления учетной записью пользователя (в частности, удалить пользователя из Firebase Auth).

Этот nativescript-plugin-firebase предоставляет все возможные вызовы службам firebase, однако описание управления пользователями с правами администратора отсутствует.Может быть, у кого-то были похожие проблемы или можно было бы обойти это решение?

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Вот как я управляю этим в своих приложениях:

  1. У моих пользователей есть разрешения, такие как "admin", "manager" и т. Д.

  2. Когда в приложение входит «admin», они могут добавлять, обновлять, удалять других пользователей через интерфейс приложения

  3. Это достигается путем отправки запроса на изменение в «updateUser "в базе данных реального времени - НЕ для фактической записи пользователя в базе данных.Убедитесь, что правила Firebase позволяют только «администраторам» писать в этот узел.

  4. Как только этот новый узел создан, я отключаю форму и отправляю кнопки, чтобы больше нельзя было вносить изменения.Затем приложение прослушивает изменения:

    • Этот недавно созданный узел "updateUser" (что-то вроде: updateUser/xkekek393kdkd)
    • Фактическая запись профиля пользователя
  5. У меня есть облачная функция Firebase, которая прослушивает любые записи в этот узел "updateUser"

  6. Когда функция запускается, она используетSDK для фактических изменений в профиле пользователя И их учетной записи аутентификации Firebase (адрес электронной почты, пароль и т. д.).Затем admin-sdk обновляет узел «updateUser» с таким статусом:

    {
      status: "success",
      message: "User updated"
    }
    

    или

    {
      status: "fail",
      message: "Email address already in use"
    }
    
  7. Клиентское приложение обнаруживает это изменениеузел "updateUser" и предоставляет пользователю обратную связь о завершении операции.

  8. Клиентское приложение также обнаруживает изменения в узле реального профиля пользователя и соответственно обновляет пользовательский интерфейс.

Преимущества:

  • Только доверенный ресурс (облачная функция Firebase) имеет доступ к привилегиям администратора.

  • Вся бизнес-логика и проверка выполняются на стороне сервера, а не на стороне клиента.

0 голосов
/ 19 февраля 2019

Плагин NativeScript - это оболочка для клиентских библиотек Firebase, которую вы можете использовать в приложении NativeScript, которое вы отправляете своим пользователям.

SDK Firebase Admin предоставляют административный доступ ко всем внутренним ресурсамваш проект Firebase.Как таковые, они предназначены только для использования в надежной среде, такой как ваш компьютер для разработки, сервер, которым вы управляете, или облачные функции.

Они явно не предназначены для использования в коде приложения, который вы отправляете своим клиентам, поскольку учетные данные, необходимые для работы Admin SDK, дадут гораздо больше прав, которые должны иметь ваши пользователи.

Если вы хотите создать страницу администратора, которая предоставляет некоторые функциональные возможности Admin SDK на платформе, для которой Admin SDK недоступен, вы можете обернуть эту функцию в облачную функцию.вызывающий абонент правильно авторизован (как показано здесь ), а затем вызовите его из своего приложения.

...