FirebaseAuth -SmsRetrieverHelper -SMS запрос кода подтверждения завершился неудачно: неизвестный код состояния: 17042 Неверный формат
я слежу за исх.
Я использую свой телефон для тестирования этого приложения. нет ошибок, но невозможно отправить проверочный код sms. мой журнал:
[FirebaseAuth] [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400
[zzf] Failed to get reCAPTCHA token with error [There was an error while trying to get your package certificate hash.]- calling backend without app verification
[SurfaceControl] release : mNativeObject = -5476376641047460960 - Surface(name=com.companyname.testapp_miniapps/com.google.firebase.auth.internal.RecaptchaActivity$_16614)/@0x1180b97 / android.view.ViewRootImpl.destroySurface:2441 android.view.ViewRootImpl.setWindowStopped:2289
[FirebaseAuth] [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17042 Invalid format.
Nuget скачать
xamarin.firebase.core
xamarin.firebase.auth
MainActivity.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> значения> strings.xml
<string name="google_app_id">1:00000:android:00000000</string>
Проект Android> Manifyt.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" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" /> />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<!-- geo location -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />
</manifest>
Проект Android> google-serives.json - я получил этот файл с firebaswebite
{
"project_info": {
"project_number": "...",
"project_id": "testappminiapps",
"storage_bucket": "..."
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:0000:android:0000",
"android_client_info": {
"package_name": "..."
}
},
"oauth_client": [
{
"client_id": "....apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "XXXXXX"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "......apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
Сайт Firebase - включить телефон / добавить случайный номер телефона / добавить код
2 ответа
Для быстрого исправления: используйте это также. Внутри функции _firebaseAuth.verifyPhoneNumber добавьте вот такой сценарий, как показано ниже... (+91 для Индии)
_firebaseAuth.verifyPhoneNumber(
phoneNumber: '+91${phoneController.text.trim()}',
);
исправлено, я проходил
myPhonenumber
без кода страны. например для США он должен быть в этом формате
+1 655-555-1209