【问题标题】:Firebase Database and PHPFirebase 数据库和 PHP
【发布时间】:2017-11-08 21:03:06
【问题描述】:

我在使用 php firebase 实现时遇到了一些奇怪的问题,我正在使用 ktamas77/firebase-php,我想通过 json 文档填充记录。但似乎每次我尝试通过

插入 json 文档
$success = $firebase->set(1 . '/AwayTeam/' . '123456', $myJSON);

我在 firebase db 中看到一个格式字符串,看起来像这样

"{\"user_id\" : \"jack\", \"text\" : \"Ahoy!\"}"

我在这里错过了什么?

【问题讨论】:

  • $myObj->last = "Miller"; $myObj->name = "约翰"; $myObj->年龄=30; $myObj->city = "纽约"; $myJSON = json_encode($myObj);
  • 对不起,我删除了我之前的更多信息请求,并在查找 firebase-php 库的源代码后直接发布了答案。

标签: php firebase-realtime-database


【解决方案1】:

正如您在firebase-php sourcecode 中看到的那样,它不接受将原始 json 字符串输入数据库。 相反,该库将对您作为 $data 放置的任何内容执行 json_encode。

如果您想将 PHP 对象存储到数据库中,请不要进行任何解码/编码:

$success = $firebase->set(1 . '/AwayTeam/' . '123456', $myObj);

为了使用所述库插入原始 JSON,您必须首先将其解码为 PHP 对象/数组:

$success = $firebase->set(1 . '/AwayTeam/' . '123456', json_decode($myJSON));

【讨论】:

  • 根据您评论中的信息,我建议不要运行任何 json_* 函数。您已经有一个 PHP 对象,您可以将其传递给 set 函数。 (即:而不是 $myJSON 或 json_decode($myJSON) 只是通过 $myObj)
  • 根据您的问题评论中的示例代码编辑了我的答案以显示该选项。
  • 谢谢,但是这个对象只是一个示例,看看它为什么不起作用,我真正的 json 很大。我测试了它,它工作正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2019-05-10
  • 2020-12-12
  • 1970-01-01
相关资源
最近更新 更多