当前位置: 首页 > 知识库问答 >
问题:

未定义的类“FirebaseUser”

谷梁振
2023-03-14

我是新来的。我有一个关于Firebase Auth/ Google Auth的问题,FirebaseUser未定义代码:

FirebaseAuth _auth = FirebaseAuth.instance;
GoogleSignIn googleSignIn = GoogleSignIn();

Future<FirebaseUser> currentUser() async { // The Issue is here in the Future<>
  final GoogleSignInAccount account = await googleSignIn.signIn();
  final GoogleSignInAuthentication authentication =
      await account.authentication;

  final GoogleAuthCredential credential = GoogleAuthProvider.getCredential(
      idToken: authentication.idToken, accessToken: authentication.accessToken);

  final AuthResult authResult = await _auth.signInWithCredential(credential);
  final FirebaseUser user = authResult.user; // and here as I can't define this FirebaseUser object to return

  return user;
}

Pubspec.yml

dependencies:
  flutter:
    sdk: flutter


  cupertino_icons: ^0.1.3
  firebase_auth: ^0.18.0
  location: ^3.0.2
  page_transition: ^1.1.6
  google_sign_in: ^4.5.1
  flutter_facebook_login: ^3.0.0
  firebase_database: ^4.0.0

我在AuthResult上也面临同样的问题

final AuthResult authResult = await _auth.signInWithCredential(credential);

共有3个答案

林俊英
2023-03-14

在最新版本的firebase_auth中,类FirebaseUser更改为User,类AuthResult更改为UserCredentail。因此,将 FirebaseUser 更改为 User

狄德泽
2023-03-14
匿名用户

从< code>firebase_auth 0.18.0开始,< code>FirebaseUser类已更改为< code>User

严兴旺
2023-03-14

在最新版本的< code>firebase_auth中,类< code>FirebaseUser更改为< code>User,类< code>AuthResult更改为< code>UserCredential。因此,请将您的代码更改为以下内容:

    Future<User> currentUser() async {
      final GoogleSignInAccount account = await googleSignIn.signIn();
      final GoogleSignInAuthentication authentication =
          await account.authentication;

      final GoogleAuthCredential credential = GoogleAuthProvider.credential(
          idToken: authentication.idToken,
          accessToken: authentication.accessToken);

      final UserCredential authResult =
          await _auth.signInWithCredential(credential);
      final User user = authResult.user;

      return user;
    }

FirebaseUser 已更改為 User

身份验证结果更改为 UserCredential

< code > Google auth provider . get credential()更改为< code > Google auth provider . credential()

通知用户登录状态更改的onAuthStateChanged被替换为AuthStateChange()

currentUser()是一种检索当前登录用户的方法,已替换为属性currentUser,并且不再返回未来

以上两种方法的示例

FirebaseAuth.instance.authStateChanges().listen((event) {
   print(event.email);
});

和:

var user = FirebaseAuth.instance.currentUser;
print(user.uid);

禁止使用firebaseUser的用户更新信息类。updateProfile方法。例子:

Future updateName(String name, FirebaseUser user) async {
  var userUpdateInfo = new UserUpdateInfo();
  userUpdateInfo.displayName = name;
  await user.updateProfile(userUpdateInfo);
  await user.reload(); 
}

现在

import 'package:firebase_auth/firebase_auth.dart' as firebaseAuth;
Future updateName(String name, auth.User firebaseUser) async {
  firebaseUser.updateProfile(displayName: name);
  await firebaseUser.reload();
}

 类似资料:
  • 问题内容: 我已将Java动态Web项目导入Eclipse IDE(已在Eclipse IDE中实现并正常工作)。 运行项目时,我收到“ 类型未定义”错误。 我已经按照结构将每个文件复制到IDE中,并且工作已完成。 现在我只想知道为什么在导入项目时出现此错误。有人遇到过同样的问题吗?请让我知道我可能犯了什么错误。 问题答案: 当我在IntelliJ中使用的servlet-api版本与Tomcat8

  • 这是我的pom 时出现以下错误

  • 问题内容: 注意:根据 ECMAScript5.1,第15.1.1.3节,window.undefined是只读的。 现代浏览器正确地实现了这一点。 例如:Safari 5.1,Firefox 7,Chrome 20等。 Undefined仍可在以下位置更改:Chrome 14,… 原来,问题的原因是 如果“对象”中没有属性“ x”,则返回false。 我通过在两个Facebook函数中用规则相等

  • 问题内容: 我遇到了这个JSON代码。我注意到它利用了价值。在哪里可以找到有关此值类型的更多信息? 问题答案: *即使在javascript中有效, *undefined 也不是有效的json值。根据官方json标准 (ECMA-404,第5节): JSON值可以是对象,数组,数字,字符串,true,false或null。 对于json,请使用 null 而不是 undefined :

  • 我是一个新的编码和上课目前,我不知道什么似乎是这里的问题,但我试图阅读和挑选特定的信息,从一个单独的文本文件。非常感谢任何帮助!

  • “我想从Hello类获取Hello world的goldUser的用户Id值,但无法获取该值。正在获取@IDClass”未为实体指定标识符:“错误”。“ 我做错了什么,或者应该用什么方法从Hello表中获取用户id的值。