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

Другие вопросы по тегам