2015-07-09 42 views
9

Jestem świadomy, że using Twitter/Facebook Firebase authentication with React Native zgłasza błąd, ponieważ oczywiste jest, że nie jest to właściwy env, aby otworzyć nowe okno autoryzacji. Ponadto uwierzytelnianie poczty e-mail/hasła również powinno się nie powieść, ponieważ zależy od LocalStorage, które nie jest obsługiwane przez React Native. Czy najlepszym sposobem na zaimplementowanie dowolnego uwierzytelniania Firebase w React Native, aby utworzyć most Swift/ObjC, to po prostu użyj biblioteki autorskiej Swift/ObjC Firebase? Jeśli tak, czy ktoś ma jakieś przykłady tego?React Native z uwierzytelnianiem Firebase

Odpowiedz

16

Aktualizacja: Aktualizacja: Od wersji Firebase 3.x uwierzytelnianie w Firebase poprawnie utrwali użytkowników w aplikacjach typu React Native.

Ahh, nie zdawałem sobie sprawy, że React Native nie polyfill localstorage. Więc jeśli dobrze rozumiem twoje pytanie, autoryzacja adresu e-mail/hasła w Firebase działa dobrze w React Native, z tym że nie jest zachowywana podczas uruchamiania aplikacji, więc użytkownik musi się logować za każdym razem.

Jednym z możliwych rozwiązań jest samodzielne utrzymywanie tokena autoryzacji. Coś jak:

  1. Zadzwoń do authWithPassword (...) jak zwykle.
  2. W procedurze obsługi onComplete pobierz plik authData.authToken i zapisz go lokalnie (np. Za pomocą AsyncStorage).
  3. Przy następnym uruchomieniu aplikacji pobierz token uwierzytelniania z pamięci i wywołaj authWithCustomToken (authToken, ...).

Postaramy się, by Firebase robił to automatycznie, ale jest to trochę trudne, aby nie reagować na innych użytkowników Firebase. Dodałem to do naszej wewnętrznej bazy błędów, a zobaczymy, co możemy wymyślić. Zaktualizujemy tę odpowiedź, gdy mamy rozwiązanie. Dzięki!

+0

Geniusz. Doceń to Michael! Prześlę wszelkie wyniki z mojej strony, a także będę się z nim bawił. –

+0

Czy istnieje fragment kodu/demo, aby dowiedzieć się, jak to zaimplementować? np. Mogę uzyskać uwierzytelnienie użytkownika działające w Internecie za pomocą tego linku jako odnośnik https://www.firebase.com/docs/web/guide/login/password.html, ale jak mogę to zrobić działając w trybie macierzystym bez uwzględnienia plik js firebase? – ak85

+0

czy to już zostało naprawione? Czy baza ogniowa utrzymuje użytkowników? – Ferologics