Firebase 云消息传递功能 sendToDevice 不起作用

2023-12-28

我使用以下代码通过 FCM 将通知从一台设备发送到另一台设备。一切正常,直到之前return admin.messaging().sendToDevice(...)。 “令牌 ID:”日志显示接收者的令牌 ID,但是当我将变量 token_id 设置为 sendToDevice 函数时,不会调用通知,因此不会发送通知。 有人能告诉我出了什么问题吗?

'use strict'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.sendNotification = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite(event => {

	const user_id = event.params.user_id;
	const notification_id = event.params.notification_id;

	console.log('We have a notification to send to ', user_id);

	if(!event.data.val()){

		return console.log('Notification has been deleted from the database: ', notification_id);

	}

	const fromUser = admin.database().ref(`/notifications/${user_id}/${notification_id}`).once('value');
	return fromUser.then(fromUserResult => {

		const from_user_id = fromUserResult.val().from;

		console.log('You have a new notification from ', from_user_id);

		const user_query = admin.database().ref(`/usuarios/${from_user_id}/nome`).once('value');
		return user_query.then(userResult => {

			const user_name = userResult.val();

			const device_token = admin.database().ref(`/usuarios/${user_id}/device_token`).once('value');
			return device_token.then(result => {
							
				const token_id = result.val();

				console.log('Token ID: ', token_id);

				const payload = {
					notification: {
						title: "New Request",
						body: `${user_name} has sent you a request.`,
						icon: "default",
					},
					data: {
						p_tab: "2"
					}
				};

				return admin.messaging().sendToDevice(token_id, payload).then(response =>{

					console.log('Notification sent to ', user_id);

				});

			});

		});

	});

});

EDIT我用来将 Firebase 实例 ID 保存到当前用户的数据库的代码。

String deviceToken = FirebaseInstanceId.getInstance().getToken();

usersRef.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("device_token").setValue(deviceToken);

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 云消息传递功能 sendToDevice 不起作用 的相关文章

随机推荐