Я сейчас пытаюсь написать приложение для чата.Я уже закончил основные функции чата с использованием firebase.Прямо сейчас я хотел бы получить push-уведомление для пользователя, когда в базе данных появляется новое сообщение.Я настроил облачные функции прямо сейчас с кодом, показанным ниже.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database.ref('/message').onWrite(event => {
const payload = {
notification: {
title: 'message!',
body: 'new message',
badge: '1',
sound: 'default',
}
};
return admin.database().ref('fcmToken').once('value').then(allToken =>
{
if (allToken.val())
{
const token = Object.keys(allToken.val());
return admin.messaging().sendToDevice(token, payload).then(response =>{
return null;
});
}
return null;
});
});
Кажется, этот код работает, просматривая журнал.Я проверил функцию, запустив приложение на реальном устройстве, но оно не работает.Дело в том, что я могу использовать облачные сообщения для отправки уведомлений на устройство, и это работает.Но я понятия не имею, почему это не работает.Может ли кто-нибудь помочь мне, пожалуйста?
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[FIRApp configure];
[GIDSignIn sharedInstance].clientID = [FIRApp defaultApp].options.clientID;
[GIDSignIn sharedInstance].delegate = self;
//notifications:
[FIRMessaging messaging].delegate = self;
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
requestAuthorizationWithOptions:authOptions
completionHandler:^(BOOL granted, NSError * _Nullable error) {
// ...
}];
[application registerForRemoteNotifications];
return YES;
}