создать пользователя с указанным пользователем uid - PullRequest
0 голосов
/ 09 октября 2019

Я использую flutter с firebase для управления моими пользователями, и в этой ссылке сказано, что вы можете указать uid при создании пользователя: https://firebase.google.com/docs/auth/admin/manage-users#create_a_user

Мой вопрос: Что такоеэквивалент в дротик / флаттер? Я понимаю, что Firebase автоматически генерирует один для вас, но в моем случае использования мне нужно иметь возможность указать мой.

Для флаттера, я знаю только о createUserWithEmailAndPassword метод, но он неиметь аргумент ' uid '.

FirebaseAuth.instance.createUserWithEmailAndPassword(email: null, password: null)

В приведенной выше ссылке они предоставили пример ( node.js ) с такими методами.

admin.auth().createUser({
  uid: 'some-uid',
  email: 'user@example.com',
  phoneNumber: '+11234567890'
})
  .then(function(userRecord) {
    // See the UserRecord reference doc for the contents of userRecord.
    console.log('Successfully created new user:', userRecord.uid);
  })
  .catch(function(error) {
    console.log('Error creating new user:', error);
  });

Ответы [ 3 ]

0 голосов
/ 09 октября 2019

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

Обычно этоозначает:

  1. вы соберете учетные данные пользователя в своем приложении Flutter
  2. отправите их (безопасно) в пользовательскую конечную точку на сервере
  3. и там подтвердитеучетные данные пользователя правильны
  4. и используйте Admin SDK для создания токена для пользователя
  5. , который затем безопасно отправляется обратно в приложение Flutter
0 голосов
/ 09 октября 2019

Эта опция существует только для Admin SDK , то есть вы вообще не можете указать uid на стороне клиента, поскольку Admin SDK работает в " среде защищенного сервера ".

Вам потребуется создать пользователей с таможенной uid на стороне сервера, а затем снова войти в эти учетные записи на стороне клиента, предоставив, например, пользовательский токен, телефон и т. Д.

0 голосов
/ 09 октября 2019

Нет такой опции для любого из Firebase клиентских SDK на любой платформе (Android, iOS, Интернет, Flutter и т. Д.).

Firebase Admin является серверным SDK и полагает, что код, вызывающийего методы являются привилегированными и работают в безопасной и надежной среде. Это считается безопасным для изобретения UID. Клиентские SDK запускаются на пользовательских устройствах, что считается ненадежным и может быть скомпрометировано. В этом случае продукт Firebase Auth должен предоставить соответствующий UID для пользователя.

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