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(...)
Были применены следующие шаги:
- Все поля были заполнены в консоли Firebase для настроек проекта Android и iOS (включая префикс идентификатора приложения и идентификатор магазина приложений).
Хэши SHA-256 (из хранилища ключей отладки и выпуска) были добавлены для настроек проекта Firebase Android:
keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v
обновленный
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