Firebase ссылка с credential не работает с Facebook - PullRequest
0 голосов
/ 06 июля 2019

Я работаю с фрагментом кода, который пытается использовать Firebase для привязки учетных данных авторизации Facebook к текущему пользователю. Текущий пользователь создает учетную запись с адресом электронной почты / паролем, а затем учетная запись Facebook связывается с этой учетной записью позднее. Ранее этот код работал должным образом, но нашей команде требовалось обновить несколько зависимостей пожарного хранилища, что, похоже, нарушило этот код. Я не уверен, в чем проблема.

Я попытался проверить содержимое токена, и, похоже, с этим нет проблем. Код всегда терпит неудачу в функции linkwcredential. Вход через интерфейс Facebook работает совершенно иначе. Функция linkwithcredential всегда выдает одну и ту же ошибку.

Мой код:

fbLogin.logInWithReadPermissions(['email', 'public_profile'])
.then((result) async 
{
    print(" == Right Before result.status");
    switch(result.status)
    {
        case FacebookLoginStatus.loggedIn:
        {
          FacebookAccessToken myToken = result.accessToken;
          print("AccessToken = ${myToken.token.toString()}");
          AuthCredential credential = FacebookAuthProvider.getCredential(accessToken: myToken.token);
          FirebaseUser us = await FirebaseAuth.instance.linkWithCredential(credential);
         }
         //... other cases & error handling
     }

Выход:

E/MethodChannel#plugins.flutter.io/firebase_auth(26676): Failed to handle method call
E/MethodChannel#plugins.flutter.io/firebase_auth(26676): java.lang.IllegalArgumentException: Given String is empty or null
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at com.google.android.gms.common.internal.Preconditions.checkNotEmpty(Unknown Source:5)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at com.google.firebase.auth.EmailAuthProvider.getCredential(Unknown Source:2)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.handleLinkWithEmailAndPassword(FirebaseAuthPlugin.java:272)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.onMethodCall(FirebaseAuthPlugin.java:122)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at android.os.MessageQueue.next(MessageQueue.java:326)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at android.os.Looper.loop(Looper.java:181)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at android.app.ActivityThread.main(ActivityThread.java:6981)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/MethodChannel#plugins.flutter.io/firebase_auth(26676):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
I/flutter (26676): PlatformException(error, Given String is empty or null, null)

pubspec.yaml:

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter_facebook_login:
  flutter:
    sdk: flutter


  cupertino_icons: ^0.1.2
  cloud_firestore: 0.10.1
  firebase_database: ^1.0.5
  firebase_auth: 0.8.1 #^0.6.6
  google_sign_in: ^3.2.4
  firebase_storage: ^1.0.4

  webview_flutter: ^0.3.0


  shared_preferences: ^0.4.3
  cached_network_image: ^0.8.0

  fluttertoast: ^3.0.4
  flutter_auth_buttons: ^0.3.1

  image_picker: ^0.6.0
  image_cropper: ^1.0.1

  auto_size_text: ^1.1.2
  flutter_range_slider: "^1.1.0"
  transparent_image: ^1.0.0
  flutter_image: ^1.0.0

  page_view_indicators: ^1.1.0
  path: any
  intl: ^0.15.8
  stripe_payment: 0.1.0
  geoflutterfire: ^2.0.3
  latlong: ^0.6.1

  firebase_messaging: 4.0.0+4

  flutter_launcher_icons: 0.7.2
  stripe: 1.3.1

Обязательный трепет доктора:

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.17134.829], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.3)
[√] Connected device (1 available)

• No issues found!

1 Ответ

0 голосов
/ 06 июля 2019

После продолжительного поиска в Интернете кажется, что это проблема с Firebase-Auth. Обновление Firebase-Auth с 0.8.1 до 0.8.2 решило проблему.

...