firebase - Flutter 错误:(getGoogleApiForMethod() 返回 Gms:com.google.firebase.auth.api.internal.zzaq@3e2567)
问题描述
您好,当我在我的卷轴设备中使用 Firebase 制作 Auth 手机时,我不能这样做,这样做总是会返回此错误
(getGoogleApiForMethod() 返回 Gms:com.google.firebase.auth.api.internal.zzaq@3e2567)
和
此应用无权使用 Firebase 身份验证。请确认在 Firebase 控制台中配置了正确的包名称和 SHA-1。[应用验证失败]
但是这个错误只是在验证电话时显示,但在使用电子邮件/密码时我工作得很好..我怎样才能解决这个问题并用电话进行身份验证
这是我的功能
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';
}
发布规范.yaml
cloud_firestore: ^0.13.5
firebase_auth: ^0.16.0
firebase_core: ^0.4.0+9
provider: ^4.0.5
毕业典礼
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.google.gms:google-services:4.3.3'
}
解决方案
(我是法国人,我的回答可能有一些错误..)
几周前我遇到了同样的问题。我忘记将 SHA1 密钥放入 Firebase。看你的错误信息,我想这是同样的问题!您确定在 Firebase 中保存了正确的 SHA-1 密钥吗?为此,我必须安装最新的 java jdk,并使用 Android Studio 中的终端,我转到文件夹 jdk -> bin 并执行函数:keytool -list -v -alias androiddebugkey -keystore {C:\\ … path to android folder }\.android\debug.keystore
。您可以在 YouTube 上找到很多关于此的视频。
在终端中,我收到了一个 SHA-1 密钥!我只需要继续 Firebase -> 我的项目设置,然后在页面底部添加我的密钥。
我希望它可以帮助你!
推荐阅读
- php - 将表单数据发送到 MySQL
- uml - PlantUML序列图中的主题如何排序?
- flutter - Flutter 类对象在没有 getter 的情况下访问私有字段
- python - 如何在 python 中导入“umap”包?
- oracle-nosql - Oracle NoSQL 存储节点
- python - Pyqt5情节没有更新?
- postgresql - 在简单的 PostgresSQL 查询中使用变量
- angular - Angular 11 默认 TypeScript 配置:target 'es2015',lib 'es2018',但没有 polyfill?
- coinbase-api - 如果客户使用 2 因素身份验证,结帐按钮回调不起作用
- javascript - Accessbility bar - 如何允许用户使用 JavaScript、CSS、Flask、Jinja 将样式应用到整个网站