gpt4 book ai didi

javascript - 如何将客户端 Firebase Cloud 消息 token 获取到 Google Cloud 功能?

转载 作者:行者123 更新时间:2023-12-02 22:40:41 25 4
gpt4 key购买 nike

我正在努力实现在 Firebase Firestore 文档更改时显示的推送通知。我正在使用 react-native-firebase 模块。我的谷歌云功能监听 firestore 的更改,然后通过 firebase-admin 发送消息。

Google 的引用资料显示您可以指定一个设备来发送消息:

// This registration token comes from the client FCM SDKs.
var registrationToken = 'YOUR_REGISTRATION_TOKEN';

var message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};

// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});

在我的react-native应用程序的客户端,我使用react-native-firebase获得了一个 token :

function getToken() {
let fcmToken = await AsyncStorage.getItem("fcmToken");
if (!fcmToken) {
fcmToken = await firebase.messaging().getToken();
if (fcmToken) {
await AsyncStorage.setItem("fcmToken", fcmToken);
}
}
}

我是否必须将谷歌云消息 token 存储在异步存储之外的其他地方,或者有没有办法在我的谷歌云功能中按原样访问它?看来我应该将身份验证 token 存储在 firestore 中并使用云功能访问 firestore。这是最好的方法吗?

最佳答案

您不需要 AsyncStorage 来访问 token ,可以直接从代码中的 fcmToken = wait firebase.messaging().getToken(); 获取该 token 。

从那里您可以将其发送到回调云函数,如下所示:

var sendMessage = firebase.functions().httpsCallable('sendMessage');
addMessage({ token: fcmToken }).then(function(result) {
// ...
});

这是基于文档 here 中的示例。然后,您可以在 Cloud Functions 代码中使用此值,通过 Admin SDK 调用 FCM API 来发送消息。

或者将其存储在数据库中,例如 Cloud Firestore,如下所示:

db.collection("tokens").add(docData).then(function() {
console.log("Token successfully written to database!");
});

这是基于文档 here 中的示例。然后,您可以从 Cloud Function 中的数据库中读取该值,并通过 Admin SDK 调用 FCM API,使用它再次发送消息。

关于javascript - 如何将客户端 Firebase Cloud 消息 token 获取到 Google Cloud 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58599873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com