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

bka*_*glu 2 php cakephp firebase angularfire cakephp-3.0

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

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

到目前为止,使用 SDK Firebase PHP 客户端很有意义,但是,我仍然对需要操作的文件感到困惑。由于使用 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');
Run Code Online (Sandbox Code Playgroud)

这是主要问题,假设我的应用程序的端点之一有一个测试功能,比如说www.example.com/visits/test,我如何确保我的应用程序集成到 Firebase 平台并且是否正在连续侦听发送到该端点的任何请求?

bka*_*glu 5

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

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> ";
  }
Run Code Online (Sandbox Code Playgroud)

然后,为了捕获前端添加的行,您可以使用类似于以下代码的代码。您可以通过单击添加“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>
Run Code Online (Sandbox Code Playgroud)

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