2016-06-22 1 views
0

何時間もドキュメントとチュートリアルを読んでいたのですが、結局はもっと混乱しました。だから、ここで私はあなたの助けを頼んでいます/ヒントと私は本当に何か一歩を踏み出すのに役立つと感謝しています。申し訳ありませんが私はおそらく作るかもしれない間違い、私はこの話題についてはかなり初心者、そうです。CakePHP 3アプリケーションをFirebaseに統合する方法

私は実際には単一のWebページで、外部ソースからGET/POST要求を受信するとすぐに実行を開始するWebアプリケーションを構築しています。したがって、リクエストが受信された場合、ページは非同期的に更新されます。そのため、後でフロントエンドでAngularJSとAngularFireを使用することを考えました。私は他にも多くの方法があり、おそらくもっと簡単だと知っていますが、CakePHPアプリケーションをFirebaseプラットフォームに統合する方法については非常に興味があります。ですから、今のところCakePHP + Firebaseの解決策に固執しましょう。

これまでのところ、SDK Firebase PHP Clientを使用することはかなり意味がありましたが、操作する必要があるファイルについてはまだ混乱しています。単純に多くはありません - FirebaseでCakePHP3 Frameworkを使用している例はこれまでありませんでしたが、私はここにこだわっていて、本当に助けてくれてありがとうございます。まず、このコードがリンクに与えられています。どのように動作するのか、それらの変数と定数が何を表しているのでしょうか。

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 を言わせて、私は自分のアプリケーションのエンドポイントの1つをテスト機能を持っていると仮定して、メインの質問です私のアプリケーションはFirebaseプラットフォームに統合されており、そのエンドポイントに送信された要求は継続的に聴かれていますか?

答えて

1

ここで私はそれをどのように解決したのですか。使用しているコントローラファイルにテストエンドポイントを追加する必要があります。プロジェクトファイルのプロジェクト設定を使用してトークンを見つけることができます。簡単な例を以下に示します。

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コンソールからあなたのコードに合ったバージョンに簡単にアクセスするには、 "firebased your web app"ボタンをクリックするか、このようにします。

<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> 

私はこのアプリではまだ行われていませんが、この洞察は、同様の問題に対処するのに役立ちます。

関連する問題