如何更新firebase中现有的嵌套数组以通过curl添加新项目?

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

上面显示的是我的firebase实时数据库数据结构。目前

msgs
数组下只有一组数据,名称为
119
。我的要求是添加更多组数据(可能带有索引120,121等),如数组
119
。如下laravel 代码替换整个
msgs
数组,同时添加新的数据集。我想将
msgs
数组中的所有项目保留为所有其他数组,并将新的数据集添加为 firebase 中
msgs
数组的下一个项目。如何实现这一目标?感谢任何帮助。

$url = env('FIREBASE_DATABASE_URL') . 'messages.json';
 // $postdat = array();

$postdat[$request->chat_id]["user_id_" . $user_id]['chats']['chat_id_' . $request->chat_id]['msgs'][$message['id']]['msg_id'] = $message['id'];
$postdat[$request->chat_id]["user_id_" . $user_id]['chats']['chat_id_' . $request->chat_id]['msgs'][$message['id']]['sender_id'] = $message['sender_id'];
$postdat[$request->chat_id]["user_id_" . $user_id]['chats']['chat_id_' . $request->chat_id]['msgs'][$message['id']]['msg_body'] = $message['message'];
$postdat[$request->chat_id]["user_id_" . $user_id]['chats']['chat_id_' . $request->chat_id]['msgs'][$message['id']]['sender_name'] = $message['sender_name'];
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdat));

意味着,我只是想向

120
数组添加一个新项目
msgs

预期输出的示例数据结构

php laravel firebase curl php-curl
1个回答
0
投票

我的要求是添加更多组数据(可能带有索引120,121等),例如数组119。

我认为你需要在这里推送数据,而不是替换数据

修改以下代码;

$url = env('FIREBASE_DATABASE_URL') . 'messages.json';

$postdat = array();

$postdat['msg_id'] = $message['id'];
$postdat['sender_id'] = $message['sender_id'];
$postdat['msg_body'] = $message['message'];
$postdat['sender_name'] = $message['sender_name'];

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdat));

我还看到您使用

cURL
与 Firebase 交互,因此您需要使用
POST
而不是
PATCH
将新数据附加到指定路径。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.