gpt4 book ai didi

javascript - 来自 Web 的 Firebase 云 HTTP 消息

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:24 26 4
gpt4 key购买 nike

我已经设置了一个网页 (home.html),用户可以使用身份验证登录到 firebase。一旦他们通过身份验证,他们就会被定向到一个新页面 (test.html)。他们到达此处后,我希望能够发送通知或数据消息。

我想知道是否有人可以帮助我发送通知的代码 - 任何类型的通知。我已经处理了 3 天,无法从网络发送通知!!我找不到任何关于此的教程 - 只有使用 curls 的人。

我不知道如何处理下面的代码,它应该是关于如何向订阅主题的设备发送通知的。我猜这都是 JSON,需要放入 JSON 对象中吗?

请假设初始化已填写,我删除了所有信息 - 尽管我认为这些信息应该是公开的。

enter image description here

感谢您提供任何信息!

这是我的服务 worker (到目前为止):firebase-messaging.sw.js

  // Give the service worker access to Firebase Messaging.
// Note that you can only use Firebase Messaging here, other Firebase libraries
// are not available in the service worker.
importScripts('https://www.gstatic.com/firebasejs/4.3.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.3.1/firebase-messaging.js');

// Initialize Firebase
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
};
firebase.initializeApp(config);

const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload){
const title = "Hello World";
const options = {
body: payload.data.status
};
return self.registration.showNotification(title, options);
});

这是进入test.html页面的app.js文件

  // Initialize Firebase
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: ""
};
firebase.initializeApp(config);

// Retrieve Firebase Messaging object.
const messaging = firebase.messaging();

messaging.requestPermission()
.then(function() {
console.log('Notification permission granted.');
return messaging.getToken();
})
.then(function(token){
console.log(token);
})
.catch(function(err) {
console.log('Unable to get permission to notify.', err);
})

messaging.onMessage(function(payload){
console.log('onMessage:', payload);
});

还有准系统 test.html 文件

<!DOCTYPE html>

<html>
<head>
<script src="https://www.gstatic.com/firebasejs/4.3.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.3.1/firebase-messaging.js"></script>
</head>
<body>
<script src="/scripts/app.js"></script>
</body>
</html>

最佳答案

正如@Himanshu Chaudhary 所说。将通知从客户端推送到客户端不是一个好习惯。人们在访问您的 token 时,可能会误用通知。但是这个蜜蜂说,如果你真的真的想那样做。让我们说测试 porpuse,私有(private)项目......它只是从第二个客户端(或更好的服务器)到启用通知的客户端的 http 帖子:

var option = {
method: 'POST',
headers: new Headers({
Authorization: "key=AAAAnww...", // your Firebase cloud messaging Server key
"Content-Type": "application/json"
}),
body: JSON.stringify({
"notification": {
"title": "some tilte:",
"body": "more text",
"icon": "./src/assets/favicons/logo.png",
"click_action": deepLinkUrl
},
"to": token // the token from 'messaging.getToken(' from the reciving client
}),
mode: 'cors',
cache: 'default'
};
fetch('https://fcm.googleapis.com/fcm/send', option);

关于javascript - 来自 Web 的 Firebase 云 HTTP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46133830/

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