Mik*_*982 3 authentication facebook firebase flutter
我正在按照将 facebook 与此处找到的 android 项目合并的说明进行操作https://developers.facebook.com/apps/318154048893918/fb-login/quickstart/并且有一个步骤可以下载 Facebook SDK,但在那之后,它没有告诉我把文件放在哪里。它告诉我添加的导入语句不起作用(说 uri 的目标不存在)。
当他们登录时,我试图将 facebook 用户添加到我们的 firebase 数据库中。我在 android studio 中使用 flutter。
控制台日志中似乎没有任何用处,除了 print 语句不打印任何内容。有任何想法吗?
这是我登录用户的代码。
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
Future<FirebaseUser> initiateFacebookLogin() async {
final FacebookLoginResult result =
await facebookLogin.logInWithReadPermissions(['email', 'public_profile']);
FirebaseUser user =
await _auth.signInWithFacebook(accessToken: result.accessToken.token);
//Token: ${accessToken.token}
ProviderDetails userInfo = new ProviderDetails(
user.providerId, user.uid, user.displayName, user.photoUrl, user.email);
List<ProviderDetails> providerData = new List<ProviderDetails>();
providerData.add(userInfo);
print(user.displayName);
addToDatabase(user.uid, user.displayName, user.displayName, user.email);
return user;
}
Run Code Online (Sandbox Code Playgroud)
在 flutter 中,您需要使用flutter_facebook_login插件,请查看此处以了解如何获取该插件并设置您的 Flutter 应用程序以使用此插件。您还可以查看这篇文章,该文章逐步介绍了如何设置您的项目并包含代码示例,但所使用的 API 已过时。
这里有一个带有更新 API 的片段,显示了如何使用 Facebook 帐户在 firebase 中登录。
/// This mehtod makes the real auth
Future<FirebaseUser> firebaseAuthWithFacebook({@required FacebookAccessToken token}) async {
AuthCredential credential= FacebookAuthProvider.getCredential(accessToken: token.token);
FirebaseUser firebaseUser = await _authInstance.signInWithCredential(credential);
return firebaseUser;
}
Run Code Online (Sandbox Code Playgroud)
在您的代码中,您使用的_auth.signInWithFacebook是已弃用的方法,您应该通过signInWithCredential更新 firebase_auth 插件版本来替换。
///This object comes from facebook_login_plugin package
final facebookLogin = new FacebookLogin();
final facebookLoginResult = await facebookLogin
.logInWithReadPermissions(['email', 'public_profile']);
switch (facebookLoginResult.status) {
case FacebookLoginStatus.error:
print("Error");
break;
case FacebookLoginStatus.cancelledByUser:
print("CancelledByUser");
break;
case FacebookLoginStatus.loggedIn:
print("LoggedIn");
/// calling the auth mehtod and getting the logged user
var firebaseUser = await firebaseAuthWithFacebook(
token: facebookLoginResult.accessToken);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5820 次 |
| 最近记录: |