我正在开发一个众筹应用程序与.我所做的第一步(firebase集成到我的应用程序后)是登录页面(登录与谷歌),它的工作正常。
在firebase仪表板中,我可以看到登录的用户数量和他们的活动,但我不能看到他们的详细信息(例如。他们的名字、姓氏和谷歌邮箱)。是否有可能在firebase仪表板中跟踪这些数据?如果是,我该怎么做?
感谢保存其他详细信息,例如:姓名、年龄、性别。
首先你需要为这个用户创建一个Model。
在注册过程中,您需要使用Firestore保存此信息。
我将在下面放一个代码,例如:
在这个例子中,它是一个Uber风格的应用程序,我主要想检索用户的名字,我想知道它的类型,是司机还是乘客。
注册界面
我只使用电子邮件/密码注册的形式,但它没有区别,注册后,请参阅下面的代码,在".then",是数据传递到Firestore的地方
void cadastrarUser(Usuario usuario) {
FirebaseAuth auth = FirebaseAuth.instance;
FirebaseFirestore db = FirebaseFirestore.instance;
auth
.createUserWithEmailAndPassword(
email: usuario.email, password: usuario.senha)
.then((firebaseUser) {
db.collection("usuarios").doc(firebaseUser.user.uid).set(usuario.toMap());
switch (usuario.typeUser) {
case "motorista":
Get.toNamed("/painel-motorista");
break;
case "passageiro":
Get.toNamed("/painel-passageiro");
break;
}
}).catchError((error) {
errorMessage =
"Erro ao cadastrar usuário, verifique os campos e tente novamnte!";
});
这个方法接收一个User实例,要从User实例传输这个数据,你需要把这个对象转换成一个"映射"。
在模型中,您需要为这种转换创建一个方法,参见下面的示例:class Usuario {
String _idUser;
String _nome;
String _email;
String _senha;
String _typeUser;
Usuario();
String checkTypeUser(bool typeUser) {
return typeUser ? "motorista" : "passageiro";
}
Map<String, dynamic> toMap() {
Map<String, dynamic> map = {
"nome": this.nome,
"email": this.email,
"typeUser": this.typeUser
};
return map;
}