Comencé a flutter recientemente e intento recuperar los datos de una consulta que hice usando 'where', pero lo único que obtuve es "Instancia de '_JsonQueryDocumentSnapshot'". Intenté cosas diferentes, pero nada funciona o lo hago mal, este es mi código:
CollectionReference users =
FirebaseFirestore.instance.collection('users');
final documents =
await users.where("username", isEqualTo: "username").get();
documents.docs.forEach((element) {
print(element);
});
También he intentado usar Future pero sin éxito:
class finduser extends StatelessWidget {
final String username;
finduser(this.username);
@override
Widget build(BuildContext context) {
CollectionReference users = FirebaseFirestore.instance.collection('users');
return FutureBuilder(
future: users.where('username', isEqualTo: '${username}').get(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasError) {
print("wrong");
return Text("Something went wrong");
}
if (snapshot.hasData &&!snapshot.data!.exists) {
print("doesnt exist");
return Text("User does not exist");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data = snapshot.data! as Map<String, dynamic>;
print(snapshot.data!);
return Text("${data}");
}
return Text("loading");
},
);
}
}
por el momento, todos los nombres de usuario son solo "nombre de usuario"
Gracias por la ayuda
Solución del problema
He buscado mucho pero veo que has escrito bien el código.
Lo único que me vino a la mente es que no inicializaste tu firebase en tu proyecto flutter (deberías hacerlo en cualquier proyecto flutter para poder usar flutter).
enlace del documento:
https://firebase.flutter.dev/docs/overview#initializing-flutterfire
No hay comentarios.:
Publicar un comentario