私はAndroidベースのユーザーに複数のプッシュ通知を送信するために単一のfirebase関数を使用しています。各実行で複数のプッシュ通知を送信するFirebaseファンクションでは何を*返すのですか?
各通知の詳細は、Firebaseデータベースに、送信する必要のある日時に記載されています。私はcronを使ってこのFirebase FunctionをHTTPリクエストで起動します。
すべてのFirebaseノード(通知を表す)をループしてすべての通知を終了するには、Firebaseファンクションが返されます。
これは私が今持っているものです。最初の通知が送信された後に終了します。私が望むのは、すべてのFirebaseの子ノードを調べ、それぞれのノードに通知を送信することです。
私は複数のプッシュ通知の場合に何を返すのか十分に考えているとは思いません。それは私がJavaScriptを書く方法をほぼ完全に忘れてしまったことにも役立ちません。
exports.sendHourlyNotifications = functions.https.onRequest((req, res) => {
const dateStr = req.query.date;
const hourStr = req.query.hour;
console.log('sendHourlyNotifications', 'date: ' + dateStr + " hour: " + hourStr);
const parentRef = admin.database().ref();
const notifRef = parentRef.child('all-notifications');
const hourRef = notifRef.child(dateStr).child(hourStr);
return hourRef.once('value').then(snapshot => {
const updates = {};
snapshot.forEach(function(childSnapshot) {
const deviceToken = childSnapshot.child("deviceToken").val();
console.log('sendHourlyNotifications', 'childSnapshot Key: ' + childSnapshot.key);
const title = childSnapshot.child("title").val();
const body = childSnapshot.child("body").val();
console.log('sendHourlyNotifications', "DeviceToken: " + deviceToken + " Title: " + title + " Body: " + body);
var payload = {
notification: {
title: title,
body: body,
}
};
admin.messaging().sendToDevice(deviceToken, payload);
return Promise.all([
/* ... */
]).then(() => {
res.status(200).send('ok');
}).catch(err => {
console.log(err.stack);
res.status(500).send('error');
});
});
return parentRef.update(updates);
});
});
それはFirebase機能の同一の実行で複数のプッシュ通知を送信することができない場合は、私は少しを再設計する必要がありますと仮定します。そのような場合は、より良いデザインへのヒントや例のリンクを歓迎します。
完璧に動作します、ありがとうございます!それは完璧な意味合いも持っています。最近私はAndroid DevのほうがWeb Devよりも多いので、これらのリソースはスキップしました。 –