使用 google 帐户和 firebase 集成的应用程序登录

App login with google account and firebase integration

我正在使用 flutter 开发 众筹应用程序。 我完成的第一步(在将 firebase 集成到我的应用程序之后)是登录页面(使用 google 登录)并且它工作正常。

在 firebase 仪表板中,我可以看到登录的用户数量和他们的 activity,但我看不到他们的详细信息(例如他们的名字、姓氏和 google 邮件)。 是否可以在 firebase 仪表板中跟踪这些数据?如果是,我该怎么做?

谢谢

保存其他详细信息,例如:姓名、年龄、性别。

首先您需要为此用户创建一个模型。

在注册过程中,您需要使用 Firestore 保存此信息。

我下面放个代码举例:

在示例中,它是一个 Uber 风格的应用程序,我主要想检索用户名,我想知道它的类型,是 driver 还是乘客。

Sign up Screen

我使用的是只用邮箱/密码注册的形式,但是没有区别,注册后,看下面的代码,在“.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实例中传输此数据,您需要将此object转换为“映射”。

在模型中,您需要为此转换创建一个方法,请参见下面的示例:

    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;
  }