Как подключить facebook, firebase и флаттер?

Я следую инструкциям по включению Facebook в проекты Android, найденным здесь https://developers.facebook.com/apps/318154048893918/fb-login/quickstart/, и есть шаг для загрузки Facebook SDK, но после этого мне не говорят, куда поместить файл. Оператор импорта, который он говорит мне добавить, не будет работать (говорит, что цель uri не существует).

Я пытаюсь добавить пользователя facebook в нашу базу данных firebase, когда они входят в систему. Я использую флаттер в студии Android.

Кажется, в журнале консоли нет ничего полезного, за исключением того, что оператор печати ничего не печатает. Есть идеи?

Вот мой код для входа пользователя.

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;

}
Почему Facebook остановился на PHP
Почему Facebook остановился на PHP
PHP имеет долгую историю с Facebook, и это был основной язык программирования, использовавшийся для создания сайта в первые годы его существования....
3
0
5 934
1

Ответы 1

Во флаттере вам нужно использовать плагин flutter_facebook_логин, взгляните на здесь, чтобы узнать, как получить плагин и настроить приложение флаттера для использования этого плагина. Вы также можете ознакомиться со статьей это, которая шаг за шагом описывает настройку вашего проекта, а также содержит пример кода, но используется API устаревший.

Вот фрагмент с обновленным API, показывающий, как войти в firebase с учетной записью facebook.

/// 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;
}

В вашем коде вы используете метод _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);
     }
}

Вы также можете проверить это

Marcos Boaventura 29.03.2019 15:48

ага ок. Да, у меня есть плагин facebook. Похоже, мне нужно сделать signInWithCredential, а не signInWithFacebook. Спасибо!

Mike1982 29.03.2019 17:20

Другие вопросы по теме