Как связать анонимного пользователя с номером телефона в облачной функции Firebase? - PullRequest
2 голосов
/ 07 апреля 2019

Я пытаюсь создать механизм аутентификации, аналогичный Whatsapp и Whatsapp Web, с использованием Android на мобильном устройстве, Angular в Интернете и, надеюсь, Firebase.

Мне удалось войти, используя номер телефона на мобильном устройстве и анонимно в Интернете. Затем в Интернете я сгенерировал QR-код для идентификатора пользователя и отсканировал его с помощью мобильного устройства. Проблема в том, что я не могу найти способ связать анонимный сеанс из Интернета с сеансом, который находится на мобильном устройстве.

Я попытался загрузить учетные данные / токен / uid вместе с отсканированным кодом в базу данных Firebase и использовать облачную функцию Firebase, чтобы связать пользователей, но кажется, что облачные функции Firebase не могут связать их.

Есть ли способ достичь этого, используя только Firebase в качестве «back-end»?

1 Ответ

0 голосов
/ 07 апреля 2019

Как мне удалось это сделать:

  1. Я отсканировал QR-код с помощью мобильного устройства и расшифровал его, чтобы получить анонимный идентификатор пользователя - давайте назовем это webUID .
  2. На мобильном устройстве я вызвал функцию Firebase Cloud с параметром webUID.
  3. В облачной функции Firebase я сгенерировал пользовательский токен из uid вызывающего абонента (uid мобильного устройства) и сохранил его в / users / webUID . Это важно, потому что это единственный путь, который может прочитать анонимный пользователь в сети (правила базы данных Firebase).
  4. В Интернете я получил пользовательский токен из / users / webUID, удалил его из базы данных, вышел из системы и выполнил вход с использованием signInWithCustomToken и предоставил пользовательский токен.

В конце оба устройства выполнили вход с правильными учетными данными, и токен был удален из базы данных.

...