【发布时间】:2021-04-01 05:34:25
【问题描述】:
我正在使用我从 github 获得的这段代码:
来自 github 的代码:
Future<FirebaseUser> facebookLogin(BuildContext context) async {
FirebaseUser currentUser;
try {
final FacebookLoginResult facebookLoginResult =
await fbLogin.logIn(['email']);
if (facebookLoginResult.status == FacebookLoginStatus.loggedIn) {
FacebookAccessToken facebookAccessToken =
facebookLoginResult.accessToken;
AuthCredential credential = FacebookAuthProvider.getCredential(
accessToken: facebookAccessToken.token);
FirebaseUser user = (await auth.signInWithCredential(credential)).user;
print("signed in" + user.displayName);
return user;
}
我从上面的代码中得到了 2 个错误:
错误:需要 1 个位置参数,但找到了 0 个。 (not_enough_positional_arguments at [flutter_app] lib\login_page.dart:31)
错误:未定义命名参数“accessToken”。 (undefined_named_parameter at [flutter_app] lib\login_page.dart:32)
据我了解,“FirebaseUser”和“getCredential”已贬值,因此我将它们更改为 User 和 Credential: 当前代码:
Future<User> facebookLogin(BuildContext context) async {
User currentUser;
// fbLogin.loginBehavior = FacebookLoginBehavior.webViewOnly;
// if you remove above comment then facebook login will take username and pasword for login in Webview
try {
final FacebookLoginResult facebookLoginResult =
await fbLogin.logIn(['email']);
if (facebookLoginResult.status == FacebookLoginStatus.loggedIn) {
FacebookAccessToken facebookAccessToken =
facebookLoginResult.accessToken;
AuthCredential credential = FacebookAuthProvider.Credential(
accessToken: facebookAccessToken.token);
User user = (await auth.signInWithCredential(credential)).user;
print("signed in" + user.displayName);
return user;
}
但现在我得到了错误:
错误:没有为“FacebookAuthProvider”类型定义“凭据”方法。 ([flutter_app] lib\login_page.dart:33 处的 undefined_method)
我将 FirebaseUser 更改为 User 并将 getCredential 更改为 Credential 是否有错误? 如何摆脱这个问题?
【问题讨论】:
标签: flutter dart firebase-authentication