Necesito notificar a todos los usuarios con las últimas noticias, solo hice el método de notificación con el token del usuario pero la notificación se muestra solo en el dispositivo de este usuario, necesito notificar a todos los usuarios de mi aplicación, este código es para enviar notificaciones por token del usuario solo, cómo enviar a un grupo de usuarios o a todos los usuarios, gracias por la ayuda
aplicación.componente.ts:
import { Component, OnInit } from '@angular/core'; import { CrudService } from './crud.service'; import { Platform } from '@ionic/angular'; import { StatusBar } from '@ionic-native/status-bar/ngx'; import { Router } from '@angular/router'; import { ActionPerformed, PushNotificationSchema, PushNotifications, Token, } from '@capacitor/push-notifications'; @Component({ selector: 'app-root', templateUrl: 'app.component.html', styleUrls: ['app.component.scss'], }) export class AppComponent implements OnInit { constructor(public crud: CrudService , private platform: Platform, private statusBar: StatusBar, public router:Router){ this.initializeApp(); crud.databaseConn(); crud.getUsersList(); } initializeApp() { this.platform.ready().then(() => { this.statusBar.styleDefault(); this.router.navigateByUrl('splash'); }); } ngOnInit() { console.log('Initializing HomePage'); // Request permission to use push notifications // iOS will prompt user and return if they granted permission or not // Android will just grant without prompting PushNotifications.requestPermissions().then(result => { if (result.receive === 'granted') { // Register with Apple / Google to receive push via APNS/FCM PushNotifications.register(); } else { // Show some error } }); PushNotifications.addListener('registration', (token: Token) => { alert('Push registration success, token: ' + token.value); console.log("token"+token.value) }); PushNotifications.addListener('registrationError', (error: any) => { alert('Error on registration: ' + JSON.stringify(error)); }); PushNotifications.addListener( 'pushNotificationReceived', (notification: PushNotificationSchema) => { var audio = new Audio("assets/bip_bip.mp3"); audio.play(); alert('Push received: ' + JSON.stringify(notification)); }, ); PushNotifications.addListener( 'pushNotificationActionPerformed', (notification: ActionPerformed) => { alert('Push action performed: ' + JSON.stringify(notification)); }, ); } }Para enviar notificaciones automáticas a varios dispositivos a través de FCM, debe usar temas y suscribir a cierto grupo de usuarios al mismo tema. Por ejemplo:
import { PushNotifications } from "@capacitor/push-notifications"; import { FCM } from "@capacitor-community/fcm"; Import { Capacitor } from “@capacitor/core”; // set up base push notifications with Capacitor await PushNotifications.requestPermissions(); await PushNotifications.register(); let topic; if (Capacitor.getPlatform() === 'ios') { topic = 'apple' } else if (Capacitor.getPlatform() === 'android') { topic = 'google' } // set up Firebase Cloud Messaging topics FCM.subscribeTo({ topic }) .then(r => console.log(`subscribed to topic “${topic}”`)) .catch(err => console.log(err));Luego, en la consola de FCM, puede probarlo enviando notificaciones a esos temas: como se muestra en esta imagen
Si desea darse de baja del tema, simplemente use FCM.unsubscribeFrom()..