【问题标题】:How to get data from Firebase database using PHP?如何使用 PHP 从 Firebase 数据库中获取数据?
【发布时间】:2017-04-10 21:05:07
【问题描述】:

最近,我创建了一个由两部分组成的 Firebase 项目,一个是 iOS 应用程序,另一个是网站。一切都很好,直到我发现我需要使用 PHP 将内容动态加载到页面中,而不仅仅是 JavaScript。

在进一步的研究中,我发现我无法使用 JavaScript 从 Firebase 数据库中检索数据,然后在 PHP 脚本中使用这些数据。

由于 Firebase 文档上没有 PHP 文档,我开始寻找答案,并在 github 上找到了一个名为 Firebase Admin SDK for PHP 的项目。因此,在许多沮丧的尝试使用 PHP 从 Firebase 检索数据寻求帮助之后,我在这里。这是我所做的:

  • 安装的作曲家:

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php 作曲家-setup.php
    php -r "unlink('composer-setup.php');"

  • 将CD放入项目文件夹并运行:

    php composer.phar 需要 kreait/firebase-php

  • 在项目上新建index.php进行测试

  • 添加到index.php的顶部:

    需要DIR.'/vendor/autoload.php';

  • 在 Fibase 项目概览中,创建一个服务帐户并将 FriendlyChat-1f226af19083.json 保存到项目文件夹中。

  • 添加到 index.php:

    $firebase = (new \Firebase\Factory())
    ->withCredentials(DIR.'/FriendlyChat-1f226af19083.json')
    ->withDatabaseUri('https://friendlychat-82d4c.firebaseio.com/')
    ->创建();

    $database = $firebase->getDatabase();
    $reference = $database->getReference('/k1');
    $snapshot = $reference->getSnapshot();
    $k1 = $snapshot->getValue();
    回声 $k1.'';

这是项目数据库:

我希望看到“teste”打印在页面上。但是页面只是呈现空白,有人可以帮我解决这个问题吗?我不确定下一步该去哪里,只要我能够从数据库中获取和设置数据,我就可以开始用 php 开发新网站了。

【问题讨论】:

  • 你没有很好地遵循文档......,创建一个孩子然后发布......,
  • 您是否设法将作曲家上传到服务器....,
  • 尝试使用try { ... } catch (\Throwable $e) { echo $e->getMessage(); } 块将代码包装在 index.php 中 - 空白页可能是由于 PHP 的错误报告被禁用而导致的错误。

标签: php firebase firebase-realtime-database firebase-authentication


【解决方案1】:
$acc = ServiceAccount::fromJsonFile(__DIR__.'/key/xxxxxx.json');
            $firebase = (new Factory)->withServiceAccount($acc)->create();
            $this->database = $firebase->getDatabase();
$reference = $database->getReference('/K1');
$snapshot = $reference->getSnapshot()->getValue();

连接 Firebase DB 的正确方式

【讨论】:

  • 请添加您使用的composer包版本
【解决方案2】:
<?php 
require __DIR__.'/../vendor/autoload.php';
use Kreait\Firebase\Factory;
$factory = (new Factory)
        ->withServiceAccount('secret/serviceaccount.json')
        ->withDatabaseUri('link_to_your_firebase_database');


$database = $factory->createDatabase();
$reference = $database->getReference('Services/');

$snapshot = $reference->getSnapshot();
$value = $snapshot->getValue();

【讨论】:

    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 2015-09-18
    • 2013-07-20
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多