Я пытаюсь найти чистый и простой способ получить uid
в результате вызова createUser()
при работе с Java SDK. Это легко сделать при работе с Javascript SDK (например, этот вопрос / ответ). Я также видел вопрос, поднятый в Stackoverflow, в контексте Firebase iOS API, где он видимо не так-то просто. Моя проблема в том, как это сделать с помощью Firebase Java SDK. В частности, мой вариант использования такой же, как и в вопросе, связанном с iOS, т.е. разрешить пользователю с правами администратора создавать учетные записи пользователей (аутентификация по электронной почте / паролю), а также хранить другую информацию о созданном пользователе в Firebase с uid в качестве ключа. Знание и использование uid в качестве ключа важно, поскольку он является основой правил безопасности.
Я видел пару предложенных решений, оба из которых включали некоторую процедуру, которую нужно было выполнить после создания новой учетной записи пользователя. Эти
- запросить Firebase, используя адрес электронной почты
- Войдите как новый пользователь и используйте authData для получения uid
В любом случае у меня есть запутанное решение с несколькими асинхронными обратными вызовами для решения проблемы, которая тривиальна при использовании Javascript API.
Поэтому у меня есть три конкретных вопроса:
- Есть ли в настоящее время лучший подход, чем два, которые я перечислил выше?
- Если я использую второй подход и вхожу в систему как только что созданный пользователь, не отменяет ли это токен администратора (т. Е. Выхожу из системы администратора, создавшего пользователя), что, в свою очередь, означает, что применяются новые правила безопасности?
- Есть ли какие-либо ожидания, что SDK для Android и Java будут обновлены в ближайшее время, чтобы
createUser()
API был таким же, как версия Javascript?
ОБНОВЛЕНИЕ. Копнув глубже и немного поэкспериментировав, я нашел ответы на свои вопросы. Оказывается, документация по API, предоставленная Firebase, устарела и / или противоречива.
По вопросу 1. Согласно Javadoc для createUser () единственный доступный обработчик обратного вызова - Firebase.ResultHandler
. Однако, согласно журналу изменений, Справочный документ по API и документация на Создание учетных записей пользователей, также можно использовать Firebase.ValueResultHandler
. Это обеспечивает прямой доступ к UID.
По вопросу 2: Да. Аутентификация вновь созданной учетной записи пользователя приводит к замене токена auth
.
По вопросу 3: Настоящий вопрос должен звучать так: «Когда люди, работающие с Firebase, обновят Javadoc?» Или, может быть, лучше спросить: «Почему новые версии SDK выпускаются без обновленной и точной документации?»