11

Mam aplikację internetową zbudowaną przy użyciu firebase. W mojej aplikacji internetowej używam google, firebase, twitter signup/signin.Czy mogę utworzyć federacyjnego użytkownika w firebase ręcznie przy użyciu interfejsu API autoryzacji?

Teraz chcę zintegrować to z moim agentem api.ai i bezproblemowo połączyć konto. W związku z tym użytkownicy będą używać aplikacji Googel Home/Asystent z urządzeń mobilnych do łączenia się z moim agentem. Na tym etapie będę mieć identyfikator konta Google, google email, nazwę użytkownika.

Jeśli użytkownik już jest obecny, mogę wysłać tokeny wymagane przez mojego agenta. Ale jeśli użytkownik jest nowy, chcę utworzyć konto w mojej bazie danych bazy danych. Nie mogłem znaleźć możliwości ręcznego utworzenia konta federacyjnego w bazie firebase (z aplikacji nodejs application/cloud)!

Wiem, że istnieje możliwość, aby create a email + dummy password account, ale to nie jest to, czego szukam. Ponieważ użytkownik zarejestrował fałszywe hasło podczas próby logowania do mojej aplikacji internetowej, użyłby swojej funkcji logowania google.

Po utworzeniu adresu e-mail i fałszywego hasła przepływ nie jest dobry i muszę zmusić użytkowników do zmiany hasła i połączenia ich kont Google ponownie po wejściu na mój kanał internetowy!

Istnieje podejście CLI, w którym mogę import users from the file. Jeśli jest taka możliwość, czy ktoś może mi pomóc, jak mogę to zrobić w funkcji chmury?

Odpowiedz

0

TO nie jest kompletna odpowiedź na pytanie

Na podstawie firebase tools import option Utworzyłem trimed dół GIST za pomocą którego jestem w stanie wywołać import z funkcji cloud. Jedyny problem, z jakim mam do czynienia to miejsce, w którym muszę przekazać token dostępu do nośnika, aby wykonać akcję.

Od tej chwili zlikwidowałem metodę getAccessToken wewnątrz import/api.js. To jest miejsce, w którym potrzebuję pomocy od zespołu Firebase, aby uzyskać token dostępu dla administratora firebase lub pominąć czek, gdy żądanie jest wykonane z poziomu funkcji chmurowej!

getAccessToken: function() { 
    return Promise.resolve({access_token: accessToken}); 
    // return accessToken ? RSVP.resolve({access_token: accessToken}) : require('./auth').getAccessToken(refreshToken, commandScopes); 
    }, 

W powyższej funkcji komentowane kod jest rzeczywiście coraz uruchomiony accessToken uzyskane przez użytkownika podczas wykonywania firebase import z narzędzi CLI. Jako narzędzie wiersza poleceń, pytając użytkownika o uzyskanie pozwolenia działa, ale podczas działania w funkcji chmury, powinno być jedną z następujących opcji, które mógłbym pomyśleć!

a) ponieważ funkcje chmury są wykonywane w ramach uprawnień administratora, zignoruj ​​uprawnienia! b) lub podaj środki do uzyskania tokenu dostępu bezpośrednio z SDK administratora.

Istota is present in here in github. Zrobiłem to prawie tak, jak z wersji firebase tools project i nieco zmodyfikowałem, aby działało w ramach funkcji chmurowych. Starałem się wprowadzić jak najmniej kodu z narzędzi firebase, jak to tylko możliwe.

Gdy uruchomię to błędy Dostaję co są na linii 35 lib/import/api.js:

<<< HTTP RESPONSE BODY 
{ 
    "error":{ 
     "errors":[ 
     { 
      "domain":"global", 
      "reason":"authError", 
      "message":"Invalid Credentials", 
      "locationType":"header", 
      "location":"Authorization" 
     } 
     ], 
     "code":401, 
     "message":"Invalid Credentials" 
    } 
}