私は、特定のユーザにプッシュ通知を送信するクラウド機能を作ろうとしています。Firebaseのクラウド機能を使用してプッシュ通知を送信
ユーザーはいくつかの変更を行い、データはfirebaseデータベースのノードの下で追加/更新されます(ノードはユーザーIDを表します)。ここで私は、ユーザーにプッシュ通知を送信する関数をトリガーしたい。
私はDB内のユーザーに対して以下の構造を持っています。
Users
- UID
- - email
- - token
- UID
- - email
- - token
今私はこの機能を持ってまで:
exports.sendNewTripNotification = functions.database.ref('/{uid}/shared_trips/').onWrite(event=>{
const uuid = event.params.uid;
console.log('User to send notification', uuid);
var ref = admin.database().ref('Users/{uuid}');
ref.on("value", function(snapshot){
console.log("Val = " + snapshot.val());
},
function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
私はコールバックを取得すると、snapshot.val()はnullを返します。どのようにこれを解決するための任意のアイデア?後でプッシュ通知を送信する方法は?
uuidのconsole.logが正しい値を示していますか? –
はい、uuidが正しいです。 –
あなたのref: 'admin.database()。ref(\' Users/$ {uuid} \ ')'に 'uuid'の値を代入するためにバックティックを使用してください。また、 'on()'の代わりに 'once()'を使うべきです。 'on()'はリスナーを接続したままにします。あなたがクラウド機能で望むものではありません。 –