php - 如何将 CakePHP 3 应用程序与 Firebase 集成

标签 php cakephp firebase cakephp-3.0 angularfire

阅读了几个小时的文档和教程后,我最终陷入了更多的困惑。因此,我在这里请求您的帮助/提示,​​我非常感谢您的任何努力帮助我更进一步。对于我可能犯的任何错误,我很抱歉,可以这么说,我在这个主题上还是个新手。

我正在构建一个 Web 应用程序,实际上是一个网页,一旦收到来自外部源的 GET/POST 请求,它就会开始运行。所以,如果收到任何请求,页面就会异步更新,为此我想到了稍后在前端使用 AngularJS 和 AngularFire。我知道还有很多其他方法,而且可能也更简单,但我很好奇如何将我的 CakePHP 应用程序与 Firebase 平台集成。因此,我们现在继续使用 CakePHP + Firebase 解决方案。

到目前为止,使用 SDK Firebase PHP Client很有意义,但是,我仍然对需要操作的文件感到困惑。由于使用 CakePHP3 框架和 Firebase 的示例并不多(到目前为止我还没有找到),所以我被困在这里,非常感谢这里的任何帮助。首先,这段代码在链接中给出,我想知道它是如何工作的以及这些变量和常量代表什么。

const DEFAULT_URL = 'https://kidsplace.firebaseio.com/';
const DEFAULT_TOKEN = 'MqL0c8tKCtheLSYcygYNtGhU8Z2hULOFs9OKPdEp';
const DEFAULT_PATH = '/firebase/example';

$firebase = new \Firebase\FirebaseLib(DEFAULT_URL, DEFAULT_TOKEN);

// --- storing an array ---
$test = array(
    "foo" => "bar",
    "i_love" => "lamp",
    "id" => 42
);
$dateTime = new DateTime();
$firebase->set(DEFAULT_PATH . '/' . $dateTime->format('c'), $test);

// --- storing a string ---
$firebase->set(DEFAULT_PATH . '/name/contact001', "John Doe");

// --- reading the stored string ---
$name = $firebase->get(DEFAULT_PATH . '/name/contact001');

这是主要问题,假设我在应用程序的一个端点上有一个测试函数,比如说www.example.com/visits/test,我该如何制作确保我的应用程序已集成到 Firebase 平台,并且发送到该端点的任何请求都会被持续监听?

最佳答案

这是我解决这个问题的方法,只是为了让你知道。需要将测试端点添加到您正在使用的 Controller 文件中。您可以使用项目文件中的项目设置找到您的 token 。下面是一个简单的示例。

public function test()
{
  $DEFAULT_URL = 'YOUR_URL';
  $DEFAULT_TOKEN = 'YOUR_TOKEN';
  $DEFAULT_PATH = '/';

  $firebase = new \Firebase\FirebaseLib($DEFAULT_URL, $DEFAULT_TOKEN);

  $lines = [
    "I had a problem once",
    "I used Java to solve it",
    "Now, I have ProblemFactory",
  ];

  foreach ($lines as $line) {
    $foo = $firebase->push($DEFAULT_PATH."code/",$line);
    echo "child_added";
    sleep(0.1);
    echo "<br> ";
  }

然后,为了捕获前端添加的行,您可以使用类似于以下代码的代码。您可以通过单击添加“firebase 到您的网络应用程序”按钮或类似的操作,轻松从 Firebase 控制台获取适合您代码的版本。

<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js">  </script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: "YOUR_API_KEY",
    authDomain: "YOUR-DOMAIN",
    databaseURL: "YOUR_URL",
    storageBucket: "YOUR_BUCKET",
  };
  firebase.initializeApp(config);

  var codeRef = firebase.database().ref('code/');
  codeRef.on('child_added', function(data) {
  console.log(data.val());
  });
</script>

我还没有完成该应用程序的使用,但是,这种见解可能会帮助您处理类似的问题。

关于php - 如何将 CakePHP 3 应用程序与 Firebase 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37973785/

相关文章:

firebase - 没有 AngularFireAuth 的提供者

java - 如何优化 Firebase 数据读取

php - Laravel 5.8 创建保存功能的帮助

php - 在 Laravel 中验证 CSV 文件

php - Oauth 认证 facebook - cakePHP 插件

php - cakephp验证问题: Delimiter must not be alphanumeric or backslash

firebase - 无法捕获 Firebase 电子邮件注册过程中抛出的 Flutter 异常

php - 查询未显示任何结果

php - 获取自 mysql 查询中特定日期以来的小时数

unit-testing - 在 CakePHP Controller 测试中访问模型