Firebase控制台发送通知失败。

3

是Firebase的一些教程。我正在注册Firebase应用程序,获取google-services.json文件,并将其粘贴到应用程序文件中,如教程所示。同时获取令牌。但是当我尝试从控制台发送通知时,状态显示为失败(我猜测是SenderId不匹配)。我插入了从FirebaseInstanceId.getInstance().getToken();获取的相同令牌。可能出了什么问题?

p.s. 当我向使用该应用程序的所有设备发送通知时,也没有成功。

编辑:清单文件

<!-- Adding Internet Permission -->

<uses-permission android:name="android.permission.INTERNET"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!--
        Defining Services
    -->
    <service
        android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

    <service
        android:name=".MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
</application>


你能分享一下你的Android清单文件吗?这将非常有帮助。 - Swaminathan V
清单分享完成。 - Hayk Nahapetyan
您的清单没有问题,看起来很好。您是否已使用SHA 1指纹更新了开发人员控制台?您是使用签名APK还是调试APK?在这两种情况下,您都需要使用指纹更新控制台。 - Swaminathan V
我使用SHA1更新了控制台,并且正在使用调试版的apk。 - Hayk Nahapetyan
你能否从 FCM 控制台发送通知?请尝试使用 FCM 控制台发送通知。在发送时,请关闭您的应用程序并检查。 - Swaminathan V
显示剩余2条评论
2个回答

4
请确认以下所有条件是否满足:
  1. 在您的控制台中更新SHA 1指纹和包名称。
  2. 从开发者控制台中获取并将JSON配置文件放置在应用程序目录[模块级目录]下。
  3. 在gradle文件中添加以下行: a) 模块gradle:apply plugin: 'com.google.gms.google-services' b) 项目gradle:classpath 'com.google.gms:google-services:3.0.0'
希望这有所帮助...

1
我的问题是我把google-settings.json放错了位置 :) - Hayk Nahapetyan

0

可能你没有为你的应用程序添加正确的SHA1?你可以按照这个教程获取正确的SHA1。然后在Firebase控制台中选择项目设置,选择添加SHA1。之后,你需要使用最新的google-services.json文件进行替换。


是的,这是用于OAuth身份验证的。您可以在google-services.json中检查,那里有一个名为“certificate_hash”的字段。哦,还有default.keystore的密码是“android”。 - Faruk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接