-1
アンドロイドのサーバレスプッシュ通知のためのfirebaseクラウド機能の例が必要です。FCMのクラウド機能とサーバレスプッシュ通知のためのアンドロイド
アンドロイドのサーバレスプッシュ通知のためのfirebaseクラウド機能の例が必要です。FCMのクラウド機能とサーバレスプッシュ通知のためのアンドロイド
Android側でこのコードを入力して、通知を送信するクラウド機能をトリガーしたい場合などです。
Message message =
new Message(timestamp, -timestamp, dayTimestamp, body, ownerUid, userUid);
mDatabase
.child("notifications")
.child("messages")
.push()
.setValue(message);
mDatabase
.child("messages")
.child(userUid)
.child(ownerUid)
.push()
.setValue(message);
if (!userUid.equals(ownerUid)) {
mDatabase
.child("messages")
.child(ownerUid)
.child(userUid)
.push()
.setValue(message);
}
そして、あなたはあなたのAndroidアプリでメッセージの送信時に起動されますあなたのFirebaseクラウド機能の初期化ディレクトリにこのコード:
exports.sendNotification = functions.database.ref('/notifications/messages/{pushId}')
.onWrite(event => {
const message = event.data.current.val();
const senderUid = message.from;
const receiverUid = message.to;
const promises = [];
if (senderUid == receiverUid) {
//if sender is receiver, don't send notification
promises.push(event.data.current.ref.remove());
return Promise.all(promises);
}
const getInstanceIdPromise = admin.database().ref(`/users/${receiverUid}/instanceId`).once('value');
const getReceiverUidPromise = admin.auth().getUser(receiverUid);
return Promise.all([getInstanceIdPromise, getReceiverUidPromise]).then(results => {
const instanceId = results[0].val();
const receiver = results[1];
console.log('notifying ' + receiverUid + ' about ' + message.body + ' from ' + senderUid);
const payload = {
notification: {
title: receiver.displayName,
body: message.body,
icon: receiver.photoURL
}
};
admin.messaging().sendToDevice(instanceId, payload)
.then(function (response) {
console.log("Successfully sent message:", response);
})
.catch(function (error) {
console.log("Error sending message:", error);
});
});
});
をチャットアプリケーションであなたがメッセージを送信するとき詳細はこちらをご確認ください - Serverless notifications with Cloud Functions for Firebase
ありがとうございます!しかし、私はそれを確認した、それは通知を送信しない、単にメッセージをチャットウィンドウに入れます。 –
@ kanwal kaur、あなたはGithubページに記載されているサーバーコードを入力しようとしましたが、この[関数](https://github.com/MahmoudAlyuDeen/FirebaseIM/blob/master/server/functions/index.js)は新しい子ノードが追加された(つまりあなたのメッセージ)と通知がデバイスに送信されたときにトリガされます。 – hsm59
このコードと[このチュートリアル](https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html)を組み合わせると、あなたは長い道のりを取るはずです。 –