Ошибка трепетания: (getGoogleApiForMethod () вернул Gms: com.google.firebase.auth.api.internal. zzaq@3e2567) - PullRequest
0 голосов
/ 17 апреля 2020

Здравствуйте, когда я делаю телефон Auth с Firebase на своем устройстве для катушек. Я не могу этого сделать, это всегда возвращает эту ошибку

(getGoogleApiForMethod () вернул Gms: com .google.firebase.auth.api.internal. zzaq@3e2567)

И

Это приложение не авторизовано для использования Firebase Authentication. Убедитесь, что правильное имя пакета и SHA-1 настроены в консоли Firebase. [Проверка приложения не удалась]

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

это моя функция

String phonenumber;
String smsCode;
String vialdid;

Future<void> verfityphoen()async{

  final PhoneCodeAutoRetrievalTimeout AutoRetriv =(String verid) {
    this.vialdid =verid;
  };


  final PhoneCodeSent smsCodeset =(String verid,[int forceResendingToken]){
this.vialdid=verid;
smscodeDialog();

  };
final PhoneVerificationCompleted verfiedcompletd=(AuthCredential user){
  print('verfild');
};
  final PhoneVerificationFailed verfilederror =(AuthException exception){
    print('${exception.message}');
  };


  await FirebaseAuth.instance.verifyPhoneNumber(
      phoneNumber:"+967733659520",
      timeout: const Duration(seconds: 5),
      verificationCompleted: verfiedcompletd,
      verificationFailed: verfilederror,
      codeSent: smsCodeset,
      codeAutoRetrievalTimeout: AutoRetriv
  );



}

Future<bool> smscodeDialog(){
  return showDialog(
      context:context,barrierDismissible: false,
      builder:(context){
    return AlertDialog(
      title: Text('enter codesms'),
      content: TextField(
        onChanged: (val){
          this.smsCode=val;
        },


      ),
      actions: <Widget>[
        new FlatButton(
            onPressed: (){

              FirebaseAuth.instance.currentUser().then((user){
                if (user!=null){
                 Navigator.pop(context);
                 Navigator.push(context, MaterialPageRoute(builder:(context)=>Home()));
                }else{

                  Navigator.pop(context);
                  _testSignInWithPhoneNumber();
                }


              });

            },
            child:Text('Clike '))

      ],
    );
        });
}

 _testSignInWithPhoneNumber() async {
  String _smsCodeController;
  final AuthCredential credential = PhoneAuthProvider.getCredential(
    verificationId: vialdid,
    smsCode: smsCode,
  );
  final FirebaseUser user = (await _auth.signInWithCredential(credential)) as FirebaseUser;
  final FirebaseUser currentUser = await _auth.currentUser();
  assert(user.uid == currentUser.uid);

  _smsCodeController = '';
  return 'signInWithPhoneNumber succeeded: $user';
}

pubspe c .yaml

cloud_firestore: ^0.13.5
  firebase_auth: ^0.16.0
  firebase_core: ^0.4.0+9
  provider: ^4.0.5

gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath 'com.google.gms:google-services:4.3.3'
    }

1 Ответ

0 голосов
/ 17 апреля 2020

(я француз, возможно, я допустил некоторые ошибки в своем ответе ..)

У меня была такая же проблема несколько недель go. Я забыл поставить ключ SHA1 в Firebase. Глядя на ваше сообщение об ошибке, я думаю, что это та же проблема! Вы уверены, что сохранили правильный ключ SHA-1 в Firebase? Для этого мне пришлось установить самую последнюю версию java jdk, и с терминалом в Android Studio я пошел в папку jdk -> bin и выполнил функцию: keytool -list -v -alias androiddebugkey -keystore {C:\\ … path to android folder }\.android\debug.keystore. Вы можете найти много видео на YouTube об этом.

В терминале я получил ключ SHA-1! Мне просто нужно было go на Firebase -> настройки моего проекта, и в нижней части страницы я добавил свой ключ.

Надеюсь, он может вам помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...