获取空结果 api firebase [FCM]

Get empty result api firebase [FCM]

我保存了一些与我的 Firebase 开发环境相关联的手机 registration_codes。一旦我通过 api 发送手动通知,我就会收到 Firebase 本人的空反馈。调试后发现通知没有发送。我的调用有什么问题,因为我在示例中进行的调用是相同的,并且 registration_code 正是我从 Firebase 的 Flutter 库收到的代码。

代码:

$response = Http::withToken(env('FCM_TOKEN'))->post(self::GLOBAL_URL, [
    'registration_ids' => $request->users,
    'data' => [
        'title' => $request->title,
        'message' => $request->message,
    ],
]);

return response()->json(["result" => $response]);

结果:

{
"result": {
    "cookies": {},
    "transferStats": {}
  }
}

首先,你不应该直接使用envbecause your .env file will not be used when the configuration is cached。相反,您应该在 config/services.php 文件中设置此值:

return [
  'firebase' => [
    'fcm_token' => env('FCM_TOKEN')
  ]
];

其次,您的问题是您正在序列化 Illuminate\Http\Client\Response 对象而不是获取其值。要 return 您请求的 JSON 结果,请调用 json():

$response = Http::withToken(config('firebase.fcm_token'))->post(self::GLOBAL_URL, [
    'registration_ids' => $request->users,
    'data' => [
        'title' => $request->title,
        'message' => $request->message,
    ],
])->json(); // Notice the `json` call here


return response()->json(["result" => $response]);

如果您检查 Illuminate\Http\Client\Response 对象本身,您会看到它包含 cookiestransferStats 属性(具体来说,它们位于 PendingRequest 对象上)。这就是您在结果中看到这一点的原因。