【问题标题】:Sending Push Notifications to all devices without Firebase Console在没有 Firebase 控制台的情况下向所有设备发送推送通知
【发布时间】:2020-05-10 03:21:21
【问题描述】:

我正在制作一个工作应用程序,旨在成为在 Android Studio 中使用 Java 的顾客的门户。我已经设置了 Firebase 云消息传递、身份验证和一个实时数据库来存储用户。我可以从 Cloud Console 轻松发送推送通知,但我想知道是否有办法在不使用控制台的情况下向所有设备发送推送通知?

我的理由是我不希望 HR 中的某个人意外删除用户,但我希望他们能够在关闭等情况下发送推送通知。有没有办法做到这一点,或者通过远程推送到所有设备,或者控制台的受限版本,这样就无法进行更改?我对此很陌生,所以如果这是一个简单的问题,请原谅我。

【问题讨论】:

标签: java android firebase push-notification firebase-cloud-messaging


【解决方案1】:

您可以向所有设备发送通知,前提是所有设备订阅了一个主题。

您可以创建一个 php 文件,该文件负责使用 api 令牌将信息发送到 firebase。

如果对您有帮助,我将不胜感激您对我的评论的认可,问候。

Notification.php

    $token = 'test'; // Topic or Token devices here
    $url = "https://fcm.googleapis.com/fcm/send";

    // api key
    $serverKey = ''; // add api key here

    $notification = array('title' => 'Welcome StackOverFlow' , 'body' => 'Testing body', 'sound' => 'default', 'badge' => '1');
    $data = array('extraInfo'=> 'DomingoMG');
    $arrayToSend = array('to' => $token, 'notification' => $notification, 'priority'=>'high', 'data'=> $data);
    $json = json_encode($arrayToSend);
    $headers = array();
    $headers[] = 'Content-Type: application/json';
    $headers[] = 'Authorization: key='. $serverKey;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);

    //Send the request
    $response = curl_exec($ch);
    //Close request
    if ($response === FALSE) {
     die('FCM Send Error: ' . curl_error($ch));
    }
    curl_close($ch);

【讨论】:

  • 分类和主题一样吗?只是为了澄清,因为我还不太熟悉行话。像所有使用过FirebaseMessaging.getInstance().subscribeToTopic("test") 的设备都会收到通知吗?
  • 你把token放在哪里你把主题放在哪里,每个订阅的人都会收到这个通知
  • 我按主题更正了主题,虽然对我来说是一样的
【解决方案2】:

您可以从您完全控制的后端或其他机器使用Firebase Admin SDK。它有一个API for sending messages 指向您已收集其设备 ID 令牌的设备。

没有额外的控制台或 GUI 用于发送消息 - 如果控制台不能执行您想要的操作,您将不得不编写代码。

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多