c# - FirebaseAuth -SmsRetrieverHelper -SMS 验证码请求失败:未知状态码:17042 格式无效
问题描述
我正在关注参考
我正在使用自己的手机来测试这个应用程序。没有错误但无法发送短信验证码。我的日志是:
[FirebaseApp] Device unlocked: initializing all Firebase APIs for app [DEFAULT]
[FirebaseInitProvider] FirebaseApp initialization successful
[FirebaseAuth] [FirebaseAuth:] Preparing to create service connection to fallback implementation
[System] Ignoring header X-Firebase-Locale because its value was null.
[System] Ignoring header X-Firebase-Locale because its value was null.
[FirebaseAuth] [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17042 Invalid format.
Nuget 下载
xamarin.firebase.core
xamarin.firebase.auth
MainAcivity.cs - 设置
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var fb = FirebaseApp.InitializeApp(Application.Context);
...
LoadApplication(new App());
}
用于发送短信代码
PhoneAuthOptions options =
PhoneAuthOptions.NewBuilder(FirebaseAuth.Instance)
.SetPhoneNumber(myPhonenumber) // Phone number to verify
.SetTimeout(num, TimeUnit.Seconds) // Timeout and unit
.SetActivity(Platform.CurrentActivity) // Activity (for callback binding)
.SetCallbacks(this) // OnVerificationStateChangedCallbacks
.Build();
PhoneAuthProvider.VerifyPhoneNumber(options);
Android 项目 > Manifiest.cs - 添加网络权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.testapp_miniapps">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
<application android:label="TestApp_MiniApps.Android" android:theme="@style/MainTheme">
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"/>
<provider android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
</manifest>
Firebase 网站添加 google-service 文件
Firebase 网站- 启用电话/添加随机电话号码/添加代码
解决方案
已修复,我通过myPhonenumber
时没有国家代码。例如对于美国,它应该是这种格式+1 655-555-1209
推荐阅读
- typescript - 为递归数据定义数据类型不正确
- google-kubernetes-engine - 如何使用 Stackdriver 创建一个检查 GKE pod/部署状态的警报?
- ruby-on-rails - 返回满足特定规则的项目数组
- python - XML 对象在请求之间改变自身
- java - Dropwizard WARN 语句:org.reflections.Reflections:无法从任何类加载器获取名称 javax.servlet.jsp.JspWriter 的类型
- regex - 如何使用 Notepad++ 正则表达式删除单个空行
- r - 我们如何通过 Darksky API 提取 2000 年的伦敦天气?
- unreal-engine4 - Convert STRING name of texture to TEXTURE reference in blueprints
- mysql - proc_exit 在此位置无效输入
- spring - 无法使用 JDBC 连接到 MariaDB,mysql utils 成功