- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是Flutter的新手。我的 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);
最佳答案
从firebase_auth
版本0.18.0开始:
在最新版本的firebase_auth
中,类FirebaseUser
更改为User
,而类AuthResult
更改为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
AuthResult
更改为
UserCredential
GoogleAuthProvider.getCredential()
更改为
GoogleAuthProvider.credential()
onAuthStateChanged
已替换为
authStateChanges()
currentUser()
是一种检索当前登录用户的方法,已被属性
currentUser
取代,并且不再返回
Future<FirebaseUser>
。
FirebaseAuth.instance.authStateChanges().listen((event) {
print(event.email);
});
和:
var user = FirebaseAuth.instance.currentUser;
print(user.uid);
UserUpdateInfo
类的
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();
}
关于firebase - 未定义类 'FirebaseUser',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63482162/
我正在使用 Firebase 开发 Android 应用程序,并启用了电话号码身份验证作为用户登录方法。这一切都很好。 在我的应用程序中,我有一个帐户详细信息页面,允许用户编辑他们的信息并更新他们在
我是Flutter的新手。我的 Firebase Auth / Google Auth 有问题 未定义FirebaseUser的 码: FirebaseAuth _auth = FirebaseAut
我是Flutter的新手。我的 Firebase Auth/Google Auth 有问题 未定义FirebaseUser的 代码: FirebaseAuth _auth = FirebaseAuth
我在 Android 上使用 Firebase Auth。 我的登录流程工作正常,但我无法立即更新 username 和 profileUrl。 public void test() { St
每当我在onPressed函数中调用此函数(_sendToServer)时,都会出现此错误。 错误:无法将参数类型“类型”分配给参数类型“FirebaseUser”。 (在[robic] lib \
我有一个集中了所有身份验证的静态 AuthProvider 类。 我有以下注册码。 AuthResult newUser = await auth.createUserWithEmailAndPa
我有一个集中了所有身份验证的静态 AuthProvider 类。 我有以下注册码。 AuthResult newUser = await auth.createUserWithEmailAndPa
在加载 FirebaseUser 信息的 showdata 方法中,我为 uInfo 设置了空值,我运行应用程序并使用 User_02 登录,调试显示:ds.getChild(userId) 到达正确
我有一个链接到 Firebase 的 Android 项目,我正在尝试关注 Firebase tutorial使用 firebase.auth 包设置 Firebase 身份验证。 问题 我需要一个
我在 Android Studio 上工作,试图将我通过 Google 登录获得的来自 FirebaseUser 的图像显示到 ImageView 中。 private void setUserDat
如何验证 FirebaseAuth.instance.currentUser() 仍然存在于 Firebase 身份验证(服务器端)中? 我在我的 Firebase 控制台中删除了用户,但 Fireb
我的 Firebase 身份验证是基于电子邮件的(登录和注册仅需要电子邮件和密码),由 Firebase 随后进行管理。 我的 RegistrationActivity 也要求提供电子邮件、密码和姓名
我的应用中有 2 个 Activity 。我还有一个登录按钮,单击该按钮时将调用此方法: private void signIn() { firebaseAuth.signInAnonymou
正如标题所说,我无法获取已登录用户的电子邮件地址。我使用多帐户系统,但无论用户是仅使用一个还是所有可用的身份验证提供程序(Facebook、Twitter、Google、电子邮件;除电子邮件外,一切正
我正在尝试获取当前在我的应用程序中登录的当前 firebase 用户的创建日期。所以我使用下面的代码: FirebaseAuth.getInstance().getCurrentUser().getM
我已经使用电话身份验证对我的用户进行了身份验证,并且在我调用 user.getUid() 时返回的用户对象具有这个长字符串: dn27dhJK.....(一些长字符串)。 如果我在其他设备上验证此用户
我试图从他/她存储在 FirebaseDatabase 中的 UID 中获取 FirebaseUser,但似乎没有允许这样做的方法。 我正在尝试这样做,因为我的应用程序中有一个选项允许用户更新他们的个
我想做什么 我正在尝试删除用户图像(通过设置 photoUrl = null)。这是我的代码: final UserUpdateInfo updatedInfo = UserUpdateInf
我有以下使用一台物理设备的情况: 用户使用 (123)-456-7890 电话号码进行身份验证并登录应用。用户在 Firebase 身份验证中创建了“用户 UID”。 现在我进入应用程序信息-->清除
我应该如何将现有用户帐户与不同提供商但同一电子邮件地址关联起来?例如 Google 和 Facebook。 public void handleFacebookAccessToken(final Ac
我是一名优秀的程序员,十分优秀!