#android #node.js #firebase #push-notification #google-cloud-platform
#Android #node.js #firebase #push-уведомление #google-облачная платформа
Вопрос:
Я создаю приложение для чата, пытаясь получить push-уведомление, когда новое сообщение получено пользователем от другого, когда приложение работает в фоновом режиме, используя отправку уведомлений между устройствами Android с использованием базы данных Firebase, облачных сообщений и Node.js.
Я слежу за этим блогом.Вот
[https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html ]
и ниже приведен мой код, который я пробовал.
@Override
public void onClick(View view) {
if (view.getId() == R.id.btnSend) {
String content = editWriteMessage.getText().toString().trim();
if (content.length() > 0) {
editWriteMessage.setText("");
Message newMessage = new Message();
newMessage.text = content;
newMessage.idSender = StaticConfig.UID;
newMessage.idReceiver = roomId;
newMessage.timestamp = System.currentTimeMillis();
FirebaseDatabase.getInstance().getReference().child("message/" roomId).push().setValue(newMessage);
sendNotificationToUser(newMessage.idReceiver,newMessage.text);
}
}
}
public void sendNotificationToUser(String user, String message) {
Map notification = new HashMap<>();
notification.put("username", user);
notification.put("message", message);
FirebaseDatabase.getInstance().getReference().child("notificationRequests").push().setValue(notification);
}
С помощью приведенных выше кодов имя пользователя и сообщение сохраняются в базе данных реального времени в notificationRequests.
И я действительно не имею представления о том, как эта строка кода может получать push-уведомление.
FirebaseMessaging.getInstance().subscribeToTopic("user_" username);
И самое главное, куда мне нужно поместить приведенный выше код, чтобы он заработал.
а также я создал корзину для размещения моего node.js файл.
заранее спасибо.
Ответ №1:
РЕДАКТИРОВАТЬ: я неправильно понял вашу проблему. Убедитесь, что служба обмена сообщениями firebase находится в вашем manifest.xml файл. Оригинал: Используйте functions.database.ref().onCreate()
метод. Внутри параметров ref () укажите путь к вашим запросам на уведомление.
Вот некоторый базовый код в TypeScript.
export const notificationListener = functions.database
.ref('/NotificationRequests/{notification}').onCreate((snapshot, context) =>
{
try {
admin.initializeApp();
} catch (e) {
}
//Code to send notification here
return admin.database().ref('/NotificationRequests/' context.params.notification)
}
)
Информация, необходимая для уведомления, находится под snapshot.child('your path here')
.
Комментарии:
1. не могли бы вы предоставить мне фрагмент кода, потому что я действительно понятия не имею