9

Buduję aplikację dla systemu Android i chcę, aby moi użytkownicy byli uwierzytelnieni, a następnie dodawani do bazy danych. Na razie robię tylko uwierzytelnianie za pomocą adresu e-mail i hasła, następnie klikam rejestr, a użytkownik jest tworzony w sekcji Auth w konsoli Firebase.Utwórz użytkownika w bazie danych po Firebase Auth (Android)

Ale chcę również, aby moi użytkownicy zostali dodani do bazy danych. Chcę dodać więcej pól (takich jak nazwisko, adres itp.), Które będą przechowywane w bazie danych użytkowników w Firebase.

Po prostu nie wiem, jak to zrobić. Czy ktoś może wyjaśnić, proszę?

Dzięki!

+1

Zobacz http://stackoverflow.com/a/37420701/4695325 –

+1

Ma na celu dodanie dodatkowych właściwości, ale nie wyjaśnianie, jak utworzyć obiekt użytkownika w bazie danych w pierwszej kolejności ... – raphh

+0

Czy muszę utworzyć jakiś rodzaj struktury w bazie danych (przy użyciu konsoli Firebase)? Jak już wspomniałem wcześniej, po podłączeniu nowego użytkownika wspomniano o nim w zakładce "Auth", ale zakładka "Database" jest nadal pusta. – raphh

Odpowiedz

5

Należy utworzyć węzeł, w którym można zaoszczędzić użytkownikom, na przykład:

users: { 
    userID1: { 
    name: 'Raph' 
    }, 
    userID2: { 
    name: 'Devid' 
    } 
} 

Każdy zalogowany użytkownik ma unikalny uid które można użyć jako klucza. Możesz go znaleźć w authToken po zalogowaniu użytkownika.

UWAGA jest to zwykły węzeł w bazie Firebase służący do zapisywania danych użytkownika. Jest to alternatywne rozwiązanie dla Firebase generated users.

+0

Dobrze, utworzyłem "użytkowników" klikając na zielony "+", więc teraz, gdy przejdę do http: // .firebaseio.com/users/userID1, mam userID1 (długa ciąg K9gdkDgfd ...) z "null" napisane. Czy nie powinienem widzieć e-maila i hasła, np. Danych od użytkowników, którzy właśnie zostali utworzeni?Naprawdę nie rozumiem, jak sobie z tym poradzić z kodu, myślałem, że wszystko powinno być skonfigurowane w db (jak, tworzenie struktury ręcznie, a następnie wypełnianie go użytkownikami, gdy tworzą swoje konto w aplikacji) – raphh

+0

I w moim kodzie , na razie, robię tylko 'auth.createUserWithEmailAndPassword (e-mail, hasło)' – raphh

+0

Możesz znaleźć te dane (email, dostawca, nazwa, ale nie hasło) w authToken podczas logowania swojego użytkownika i wepchnąć je do firebase. Firebase wewnętrznie tworzy profil użytkowników (zobacz link w mojej odpowiedzi), ale pozwala przechowywać tylko kilka danych. Jeśli chcesz zapisać więcej informacji, powinieneś skorzystać z tej metody. Mam nadzieję, że jestem czysty :) –

1

Oto jeden sposób, aby przechowywać dane zarejestrowane w bazie danych,

Map<String, String> parameters = new HashMap<>(); 
FirebaseDatabase mFirebaseInstance; 
parameters.put(Constant.TAG_USER, strUsrS.trim()); 
parameters.put(Constant.TAG_PASS, strPassS.trim()); 
//use this if needed(pushId) 
String pushId = mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().push().getKey(); 
parameters.put(Constant.TAG_KEY, pushId.trim()); 

mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().child(strUsrS.trim()).setValue(parameters); 

Spróbuj wdrożenie i wykonanie ... Dziękuje