web-dev-qa-db-fra.com

Ajouter des informations utilisateur supplémentaires avec firebase

J'ai intégré l'authentification de Firebase avec mon Android. Disons qu'un utilisateur a un courrier électronique [email protected]. Je souhaite ajouter des informations supplémentaires à l'utilisateur, telles que le nom de l'utilisateur, sa profession et son adresse. Comment puis-je connecter la table d'authentification de l'utilisateur avec mon Android app pour le faire?)

Dois-je écrire des API pour cela?

30
Jason Bourne

Commencez par créer un répertoire users dans la base de données. Ensuite, en utilisant l'identifiant unique de l'utilisateur que vous obtenez du processus authn, stockez les informations de l'utilisateur sous users/{userid}.

Pour ce faire, vous devez entrer dans les détails de la base de données Firebase. Voir ici: https://firebase.google.com/docs/database/Android/save-data

17
Ugurcan Yildirim

Pour ce faire, vous n'avez pas besoin d'écrire de code personnalisé. Firebase possède déjà des fonctionnalités que vous pouvez utiliser.

La première chose à faire est de s’assurer que les utilisateurs n’ont accès qu’aux données qu’ils stockent. Pour ce faire, allez à Database/Rules et changez vos règles pour ceci:

{
"rules": {
  "my_app_user": {
    "$uid": {
      ".write": "auth != null && auth.uid == $uid",
      ".read": "auth != null && auth.uid == $uid"
     }
   }
 }
}

Ensuite, pour enregistrer les nouveaux détails dans une base de données Firebase, procédez comme suit:

        MyAppUser user = new MyAppUser();
        user.setAddressTwo("address_two");
        user.setPhoneOne("phone_one");
        ...

        mDatabaseReference.child("my_app_user").child(firebaseUser.getUid()).setValue(user).
                addOnCompleteListener(DetailsCaptureActivity.this,
                                   new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            ...

Le nom de l'enfant my_app_user doit correspondre à la fois dans votre code et dans les règles Firebase, sinon il ne persistera pas.

Si tout se passe comme prévu, vous devriez voir les détails dans votre base de données:

enter image description here

13
ojonugwa ochalifu

Vous devez créer une autre table de base de données nommée "utilisateur". En cas de connexion réussie, pour la première fois, vous devez créer une nouvelle ligne dans la table utilisateur.

public static void writeNewUser(DatabaseReference databaseReference, String userId, String name, String email, int accountType) {
    User user = new User(name, email, accountType);

    databaseReference.child("users").child(userId).setValue(user);
}

Vous pouvez consulter https://github.com/firebase/quickstart-Android/tree/61f8eb53020e38b1fdc5aaeddac2379b25240f3b/database

3
Swapnil Chaudhari