如何使用 kreait/firebase-php 一次向多个设备令牌发送 firebase 云消息

问题描述 投票:0回答:1

我尝试通过以下代码发送,但收到“操作未实现、不支持或启用”此错误。

$users = [
    ['registration_token' => "eUr2Gyu0R-WD2giKqQuBHO:APA91bE97YKaBcc0-nckfDcGfF1U0olmkDxomvjM-HM-fNfy9yl1IwBvOPOxvzTATktfIz8GU-daCwr4HB3qYBtwAdvpaJ839cLaJ32XW0NVLToJ07dfJkxTMGhWe-fVAvRw314AOsP6"],
    // ...more tokens
];

$messages = [];

foreach ($users as $user) {
    $messages[] = CloudMessage::withTarget('token', $user['registration_token'])
        ->withNotification([
            'title' => "Tittle...",
            'body' => "Message",
        ]);
}

$messaging = (new Factory())
    ->withServiceAccount('firebase_cloud_messaging.json')
    ->createMessaging();

$sendReport = $messaging->sendAll($messages);

echo 'Successful sends: ' . $sendReport->successes()->count() . PHP_EOL;
print_r($sendReport->failures());```
php laravel google-cloud-firestore push-notification firebase-cloud-messaging
1个回答
0
投票

sendMulticast()
消息是将一条消息发送到多个设备的便捷方法。

use Kreait\Firebase\Messaging\CloudMessage;

$message = CloudMessage::new(); // Any instance of Kreait\Messaging\Message
$deviceTokens = ['...', '...' /* ... */];

/** @var Kreait\Firebase\Messaging\MulticastSendReport $sendReport **/
$sendReport = $messaging->sendMulticast($message, $deviceTokens);

有关此问题的更多信息,请参阅此文档

© www.soinside.com 2019 - 2024. All rights reserved.