Firebase приглашает говорит, что приглашение отправлено, но не было получено

Я пытаюсь отправить приглашения с помощью Firebase Invites. При выборе электронного письма из контакта Firebase сообщает, что отправило приглашение, но электронное письмо так и не было получено.

На консоли настраиваются сертификаты SHA1.

Возвращаемый код ошибки всегда RESULT_OK, и число приглашений, возвращаемых из AppInviteInvitation.getInvitationIds, является правильным.

SDK обновляется в Gradle последней версией, 10.0.1, как описано в документации.

Код, который создает приглашение:

Intent intent = new AppInviteInvitation.IntentBuilder(title)
                .setMessage(msg)
                .setCallToActionText(callToActionText)
                .setOtherPlatformsTargetApplication(AppInviteInvitation.IntentBuilder.PlatformMode.PROJECT_PLATFORM_IOS, IOS_CLIENT_ID)
                .build();

Есть идеи?

2 ответа

У меня была та же проблема, и мне удалось ее исправить, хотя я не совсем уверен, какой шаг на самом деле помог.

Стоит указать, что в моем случае электронное письмо было отлично отправлено, когда я удалил вызов метода:

.setOtherPlatformsTargetApplication(...)

Были применены следующие шаги:

  1. Все поля были заполнены в консоли Firebase для настроек проекта Android и iOS (включая префикс идентификатора приложения и идентификатор магазина приложений).
  2. Хэши SHA-256 (из хранилища ключей отладки и выпуска) были добавлены для настроек проекта Firebase Android:

    keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v
    
  3. обновленный google-services.json был загружен из настроек проекта Firebase для Android и добавлен в корень приложения (с помощью GoogleServicesJson Build Action для Xamarin). Таким образом, файл среди прочего содержит следующее:

    ...
    "appinvite_service": {
      "status": 2,
      "other_platform_oauth_client": [
        {
          "client_id": "1234567890-specified_ios_client_id.apps.googleusercontent.com",
          "client_type": 2,
          "ios_info": {
            "bundle_id": "ios.app.bundle.id",
            "app_store_id": "9876543210"
          }
        },
        ...
      ]
    }
    ...
    

Указанный client_id то же самое в .setOtherPlatformsTargetApplication(...) вызов метода и в google-services.json

Кроме того, приглашения Firebase были предварительно настроены для проекта iOS, но я не вижу, может ли это как-то помочь для Android.

Удаление .setOtherPlatformsTargetApplication(...) разрешено Android отправлять приглашения снова.

Когда приглашения получаются на iOS, они корректно работают, открывая ссылку с:

  • Gmail или Почта с установленным приложением (правильно открывает приложение)

Они не работают должным образом:

  • Ссылка для чтения электронной почты в Safari с не установленным приложением, идет в Google Play Store
    • Ссылка в приложении Gmail или Mail, если приложение не установлено, переходит в Google Play Store
Другие вопросы по тегам