Firebase Auth and Database [Duplicate] -- java campo con android campo con firebase campo con firebase-realtime-database campo con firebase-authentication camp Relacionados El problema

Firebase Auth and Database [duplicate]


0
vote

problema

Español
Esta pregunta ya tiene respuestas aquí :
¿Cómo vinculo a cada usuario a sus datos en Firstbase? (2 respuestas)
Cerrado hace 3 años .

Tengo una pregunta con Firsebase, soy nuevo en esto. Me gustaría devolver el nombre del usuario cuando inicie sesión, pero ese nombre está en la base de datos y me gustaría devolver solo el nombre, por supuesto, coincidiendo con el correo electrónico que se encuentra en la autenticación, que también está en la base de datos. La idea que tengo es comparar el correo electrónico de la base de datos con la autenticación y si es cierto, dame el nombre. Pero no sabría cómo desarrollarlo. Soluciones? Gracias

Original en ingles

I have a question with Firebase, I'm new to this. I would like to return the user's name when I login, but that name is in Database and I would like to return only the name, of course, coinciding with the email found in the authentication, which is also in the Database. The idea I have is to compare the email from the database with the Auth and if it is true, give me the name. But I would not know how to develop it. Solutions? Thank you

              
 
 

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Para lograr esto, debe usar una clase de modelo que se vea así:

  public class UserModel implements Serializable {     private String userEmail;     private String userName;      public UserModel() {}      public UserModel(String userEmail, String userName) {         this.userEmail = userEmail;         this.userName = userName;     }      public String getUserEmail() {return userEmail;}     public String getUserName() {return userName;} }   

Para agregar un usuario, use el siguiente código:

  String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); UserModel userModel = new UserModel("john@email,com", "John"); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference usersRef = rootRef.child("users"); usersRef.child(uid).setValue(userModel);   

La estructura de su base de datos se verá así:

  Firebase-root    |    --- users          |          --- uid               |               --- userEmail: "john@email,com"               |               --- userName: "John"   

Además, para recuperar el userName , use el siguiente código:

  DatabaseReference uidRef = usersRef.child(uid); ValueEventListener eventListener = new ValueEventListener() {     @Override     public void onDataChange(DataSnapshot dataSnapshot) {         if(dataSnapshot.exists()) {             String userName = dataSnapshot.child("userName").getValue(String.class);             nombre.setText(userName);             Log.d("TAG", userName);         }     }      @Override     public void onCancelled(DatabaseError databaseError) {         Log.d(TAG, databaseError.getMessage());     } }; uidRef.addListenerForSingleValueEvent(eventListener);   

Si está interesado, también me he exapado en uno de mis tutoriales paso a paso, todo el proceso de autenticación usando Google y Firebase .

 

In order to achieve this, you need to use a model class that looks like this:

public class UserModel implements Serializable {     private String userEmail;     private String userName;      public UserModel() {}      public UserModel(String userEmail, String userName) {         this.userEmail = userEmail;         this.userName = userName;     }      public String getUserEmail() {return userEmail;}     public String getUserName() {return userName;} } 

To actually add a user, please use the following code:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); UserModel userModel = new UserModel("john@email,com", "John"); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference usersRef = rootRef.child("users"); usersRef.child(uid).setValue(userModel); 

Your database structure will look like this:

Firebase-root    |    --- users          |          --- uid               |               --- userEmail: "john@email,com"               |               --- userName: "John" 

Furthermore, to get back the userName, please use the following code:

DatabaseReference uidRef = usersRef.child(uid); ValueEventListener eventListener = new ValueEventListener() {     @Override     public void onDataChange(DataSnapshot dataSnapshot) {         if(dataSnapshot.exists()) {             String userName = dataSnapshot.child("userName").getValue(String.class);             nombre.setText(userName);             Log.d("TAG", userName);         }     }      @Override     public void onCancelled(DatabaseError databaseError) {         Log.d(TAG, databaseError.getMessage());     } }; uidRef.addListenerForSingleValueEvent(eventListener); 

If you are interested, I have also exaplained in one of my tutorials step by step, the entire authentication process using Google and Firebase.

 
 
       
       
0
 
vote

No creo que necesites entrar en tanta problemas. Siga este y podría ayudarlo. No es necesario que haga una coincidencia de correo electrónico. Firebase proporciona una identificación de usuario única para cada usuario. Una vez que un usuario se registre en su sistema, FireBase proporciona ese ID. Solo tiene que guardarlo en la base de datos como la clave principal para ese usuario. Luego, puede obtener datos de su base de datos utilizando ID de usuario. La ID de usuario puede ser recuperada en cualquier lugar usando firebase.auth().currentUser.uid()

 

I don't think you need to go into that much trouble. Follow this and it might help you. You don't need to do a email matching. Firebase provides unique user ID for each user. Once a user register into your system firebase provides that ID. You just have to save it in database as the primary key for that user. Then you can get data from your database using user Id. User Id can be fetched in any place using firebase.auth().currentUser.uid()

 
 
     
     

Relacionados problema

-1  Android - TransformeException: java.util.zip.zipexception: entrada duplicada: com / google / android / gms / interno / zzblr.class  ( Android transformexception java util zip zipexception duplicate entry com g ) 
Estoy tratando de ejecutar mi aplicación basada en Firebase, que me está dando un error siguiente Actualización 1- I Actualizado multiDexEnabled A true Ta...

1  Reglas de seguridad comodín para claves dinámicas anidadas  ( Security rules wildcard for nested dynamic keys ) 
Soy nuevo en Firogase y estoy confundido con las reglas de seguridad. Tengo una base de datos para usuarios en línea, así: USER_ONLINE_STATUS: ---- cha...

0  Mostrando una autenticación de Facebook en reaccionar  ( Displaying a facebook auth photourl in react ) 
Estoy usando React y Firebase y recibo lo siguiente cuando se registra photoURL: https://graph.facebook.com/10157648190117379/picture Si intento mostra...

0  Autenticación Firebase + Base de datos Firebase en Android [Duplicar]  ( Authentication firebase database firebase in android ) 
Esta pregunta ya tiene respuestas aquí : Firebase: Configuración de propiedades de usuario adicional...

0  Firebase - La regla siempre niega las solicitudes  ( Firebase rule always denies requests ) 
Estoy empezando a restringir el acceso a mi base de datos Firebase. Hasta ahora tengo tres colecciones donde simplemente quiero devolverme verdaderas para fin...

0  Firebase JS SDK - Tiempo de espera de código de verificación SMS  ( Firebase js sdk sms verification code timeout ) 
¿Hay una manera de establecer una duración de cuándo caducará el código de verificación de SMS en FirstBase JS SDK? La siguiente función no parece aceptar e...

1  Firebase OTP SMS no envió AUTH / OPERATION-OPERIOR-NOPORTADORA EN ESTE MEDIO AMBIENTE  ( Firebase otp sms not sent auth operation not supported in this environment ) 
Firebase Phone Auth está trabajando en la web, pero no funciona en el dispositivo Android a devoluciones "SMS no enviado" Error y "Auth / Operation-Not-soport...

4  El inicio de sesión de Google con Firsebase en reaccionar nativo  ( Google sign in using firebase in react native ) 
NOTA La pregunta podría ser larga debido a la necesidad de explicación, de lo contrario, podría ser muy vaga y conducir a las mismas respuestas antiguas. ...

0  El tipo de argumento 'tipo' no se puede asignar al tipo de parámetro 'FireBaseUSER'  ( The argument type type cant be assigned to the parameter type firebaseuser ) 
Cada vez que llamo a esta función (_sendtoserver) en una función onPrima, obtengo este error. Error: el tipo de argumento 'tipo' no se puede asignar al tipo ...

10  URL de devolución de llamada no aprobada para esta aplicación cliente. en Android-Firebase-Twitterlogin  ( Callback url not approved for this client application in android firebase twitt ) 
Estoy intentando el inicio de sesión de Firebase Twitter en la aplicación Android y le da este error. E/Twitter: Invalid json: <?xml version="1.0" encoding...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos