Firebase 云消息未传送到 Wear OS 设备

Firebase cloud messages are not delivered to Wear OS device

我在接收到运行 Wear 的手表的 Firebase 推送消息时遇到问题 OS。当手表通过蓝牙(无 Wi-fi 连接)与 smartphone 配对时会发生这种情况。如果手表上的 Wi-Fi 处于活动状态,则可以正常发送消息。

我正在使用 FCM 端点通过 POST 请求发送数据消息:https://fcm.googleapis.com/fcm/send

消息负载本身如下所示:

{
    "priority" : "high",
    "to" : "/topics/myTopic",
    "data" : {
        "key1" : "val1",
        "key2" : "val2"
        "key3" : "val3"
    }
}

我像往常一样注册了服务:

    <service android:name=".data.fcm.MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

像往常一样收听消息:

override fun onMessageReceived(remoteMessage: RemoteMessage?) {
        // Check whether message contains a data payload.
        if (remoteMessage?.data!!.isNotEmpty()) {
            Timber.d("Message data payload: ${remoteMessage.data}")
            ....
        }
    }
}

我应该注意到 Firebase 数据库在手表上运行良好,手表仅通过蓝牙连接到 phone。但是FCM没有。

非常感谢任何想法。

这可能是由于 FCM 在配对 phone 上使用的端口被阻止。 如果 phone 通过 Wifi 连接,并且 FCM 端口(5228、5229、5230)在那里被阻止,消息将不会被传递。 https://firebase.google.com/docs/cloud-messaging/concept-options#ports_and_your_firewall