問題
Node Firebase Admin SDK でCloud messaging を使い,通知を送信したときに指定したURLが通知をクリックしても開かない。
通知自体は問題なく届く。
環境
node : v14.19.3
npm : v6.14.17
firebase-admin : v11.0.0
ソースコード
service worker
js
1//firebase-messaging-sw.js 2importScripts('https://www.gstatic.com/firebasejs/9.2.0/firebase-app-compat.js'); 3importScripts('https://www.gstatic.com/firebasejs/9.2.0/firebase-messaging-compat.js'); 4 5firebase.initializeApp({ 6 //firebase configs... 7}); 8 9const messaging = firebase.messaging();
通知送信側
js
1//index.js 2var admin = require("firebase-admin"); 3var serviceAccount = require("/path/to/serviceAccountKey.json"); 4admin.initializeApp({ 5 credential: admin.credential.cert(serviceAccount) 6}); 7const mysql = require('mysql'); 8const connection = mysql.createConnection({ 9 //mysql configs.... 10}); 11var setTokens = new Set(); 12connection.connect(); 13connection.query("SELECT * FROM `user`", function (error, results, fields) { 14 if (error) throw error; 15 console.log(results) 16 console.log(results.length); 17 results.forEach(function (value) { 18 setTokens.add(value.token); 19 }); 20 console.log(setTokens) 21 registrationTokens = Array.from(setTokens); 22 console.log(registrationTokens); 23 const message = { 24 notification: { 25 title: "title", 26 body: "body", 27 //click_action: "https://yosshipaopao.com", 28 }, 29 webpush: { 30 fcmOptions: { 31 link: "https://example.com" 32 } 33 }, 34 tokens: registrationTokens, 35 }; 36 admin.messaging().sendMulticast(message).then((response) => { 37 if (response.failureCount > 0) { 38 const failedTokens = []; 39 response.responses.forEach((resp, idx) => { 40 if (!resp.success) { 41 failedTokens.push(registrationTokens[idx]); 42 } 43 }); 44 console.log('List of tokens that caused failures: ' + failedTokens); 45 } 46 }); 47}); 48connection.end();
試したこと
"click_action"(コメントアウト部)も試したが
"response.failure"(下の方の処理)になってできなかった
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。