Firebase invites says invitation sent but has not been received

别等时光非礼了梦想. 提交于 2020-01-01 07:42:05

问题


I've trying to send invitations with Firebase Invites. When select an email from a contact, Firebase says that has sent the invitation, but the email is never received.

On the console the SHA1 certicates are configurated.

The errorcode returned is always RESULT_OK and the number of invitations returned from AppInviteInvitation.getInvitationIds is correct.

The SDK is updated on gradle with the latest version, 10.0.1, like explained on the documentation.

The code that creates the invitation is:

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

Any ideas?


回答1:


I had the same problem and I managed to fix it, although I am not pretty sure what step actually helped.

It's worth specifying that in my case the email was perfectly sent when I removed the method call:

.setOtherPlatformsTargetApplication(...)

The following steps were applied:

  1. All fields were filled on Firebase console for Android and iOS project settings (including App ID Prefix and App Store ID).
  2. SHA-256 hashes (from debug and release keystore) were added for Firebase Android project settings:

    keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v
    
  3. Updated google-services.json was downloaded from Firebase Android project settings and added to the application root (with GoogleServicesJson Build Action for Xamarin). So the file among others contains the following:

    ...
    "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"
          }
        },
        ...
      ]
    }
    ...
    

The specified client_id is the same in .setOtherPlatformsTargetApplication(...) method call and in google-services.json

Also Firebase Invites had been previously adjusted for the iOS project, but I don't see if it could help for the Android anyhow.




回答2:


Removing .setOtherPlatformsTargetApplication(...) allowed Android to send invitations again.

When invitations are received on iOS though, they work correctly opening link with:

  • Gmail or Mail with app installed (opens app correctly)

They do not work properly:

  • Link reading email in Safari with app not installed, goes to google play store
    • Link in Gmail or Mail app, with app not installed, goes to google play store


来源:https://stackoverflow.com/questions/40941029/firebase-invites-says-invitation-sent-but-has-not-been-received

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!