【问题标题】:Flutter The getter 'uid' isn't defined for the type 'UserCredential'Flutter 没有为“UserCredential”类型定义 getter 'uid'
【发布时间】:2021-05-21 08:00:23
【问题描述】:

您好,我一直在使用 Flutter 开发 Firebase 实时数据库,我想使用电子邮件和密码创建一个新用户,但是当我想获取它的标题时,它会显示 uid,有人可以帮忙吗? ,我不知道怎么了 这是代码:

 Future validateForm() async {
    FormState formState = _formKey.currentState;

    if (formState.validate()) {
      formState.reset();
      User user =  firebaseAuth.currentUser;
      if (user == null) {
        firebaseAuth
            .createUserWithEmailAndPassword(
                email: _emailTextController.text,
                password: _passwordTextController.text)
            .then((user) => {
              _userServices.createUser(
            {
            "username": _nameTextController.text,
            "email": _emailTextController.text,
            "userId": user.uid,
            "gender": gender,
            }
        )
        }).catchError((err) => {print(err.toString())});

    Navigator.pushReplacement(
    context, MaterialPageRoute(builder: (context) => HomePage()));

      }
    }
  }

这是我的 user.dart :

import 'package:firebase_database/firebase_database.dart';
class UserServices{
  FirebaseDatabase _database = FirebaseDatabase.instance;
  String ref = "users";

  createUser(Map value){
    _database.reference().child(ref).push().set(
      value
    ).catchError((e) => { print(e.toString())});
  }
}

【问题讨论】:

  • 请检查您的 Firebase Auth 是否启用了电子邮件登录方法。

标签: firebase flutter dart firebase-authentication


【解决方案1】:

createUserWithEmailAndPassword() 返回一个Future<UserCredential>。在UserCredential 类中,您有一个名为user 的属性,它检索当前创建的用户并返回User 类型。因此,您需要执行以下操作:

        firebaseAuth
            .createUserWithEmailAndPassword(
                email: _emailTextController.text,
                password: _passwordTextController.text)
            .then((user) => {
              _userServices.createUser(
            {
            "username": _nameTextController.text,
            "email": _emailTextController.text,
            "userId": user.user.uid,
            "gender": gender,
            }

回调中的user 参数是UserCredential 类型,.userUser 类型,uidUser 类中的属性。

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 2021-10-04
    • 2020-09-02
    • 2021-10-19
    • 2021-05-18
    • 1970-01-01
    • 2021-11-22
    • 2019-12-01
    相关资源
    最近更新 更多