Solución:
Actualización (2020.09.09)
Después de la versión 0.18.0 de firebase_auth
Se realizaron pocas actualizaciones importantes en firebase_auth 0.18.0. FirebaseUser ahora se llama User, currentUser es un getter y currentUser es sincrónico.
Esto crea el código para obtener uid como este:
final FirebaseAuth auth = FirebaseAuth.instance;
void inputData() {
final User user = auth.currentUser;
final uid = user.uid;
// here you write the codes to input the data into firestore
}
Antes de la versión 0.18.0 de firebase_auth
uid es una propiedad del objeto FirebaseUser. Dado que auth.currentUser () devuelve un futuro, debe esperar para obtener el objeto de usuario de esta manera:
final FirebaseAuth auth = FirebaseAuth.instance;
void inputData() async {
final FirebaseUser user = await auth.currentUser();
final uid = user.uid;
// here you write the codes to input the data into firestore
}
Debe esperar a que se complete la operación asincrónica.
final FirebaseUser user = await auth.currentUser();
final userid = user.uid;
o puede usar la sintaxis de estilo then:
final FirebaseUser user = auth.currentUser().then((FirebaseUser user) {
final userid = user.uid;
// rest of the code| do stuff
});
final FirebaseAuth _auth = FirebaseAuth.instance;
getCurrentUser() async {
final FirebaseUser user = await _auth.currentUser();
final uid = user.uid;
// Similarly we can get email as well
//final uemail = user.email;
print(uid);
//print(uemail);
}
Llame a la función getCurrentUser para obtener el resultado. Por ejemplo, usé un botón:
RaisedButton(
onPressed: getCurrentUser,
child: Text('Details'),
),
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)