3

Webサイトを稼働しているサーバーがあります。 Android、iOS、クライアントサイドのWebアプリケーションの3つの別々のデバイスグループ(ダウンストリームのみ)の通知を管理できるようにするには、このサーバーが必要です。Webサーバー上でFirebase Cloud Messagingを実装する

firebaseクラウドメッセージングを使用しようとしています。 FCMでは、httpプロトコルを使用してjsonメッセージを送信する予定です。

これ以外に、私はどこへ行くのかかなり混乱しています。 GCMチュートリアルはFCMチュートリアルとまったく同じものでなければならないが、チュートリアルでは何をする必要があるのか​​分かりません。各チュートリアルではサーバーとクライアントサイドのアプリケーションが混在しているようです。私を混乱させている。

私はかなり徹底的

https://firebase.google.com/docs/cloud-messaging/server#choose

をしてきたが、私がまだ持っていないことをいくつかの必要な知識をごまかすように思われます。誰もが私が探している方法でFCMを実装する方法の良い出発地を提案することはできますか?私は全体的にWebデベロッパーにとっては非常に新しいです(ノード、mongo、scssを使用して2ヶ月以内)、FCMをどうやって始めるべきかについて圧倒しています。

皆様からのご意見をお待ちしております。

+0

あなたは基本をかなりよく理解しているようです。残念ながら、オフサイトのリソースを推奨するのはスタックオーバーフローに関する話題です。つまり、この答えは、[node.jsスクリプトを使ってメッセージを送信する方法]を示しています。(0120-18753-03) –

+0

これはかなり良いリンクです。男、私はこのコミュニティで長く知っていました。フィードバックをお寄せいただきありがとうございます!このサイトまたは他のコミュニティのセクションには、そのタイプの質問に適しているかどうかがありますか? – Liquidmetal

+0

私は具体的にあなたが書類に書かれていると思われるものに興味があります。いくつか例を挙げていただけますか? –

答えて

7

あなたがアンドロイド、iOS、およびクライアントサイドのWebアプリケーションである3つのプラットフォームすべてで通知を受ける予定であると書いてあるので、 firebaseを使って、リアルタイムの通知や望ましいデータを得ることができますが、これを達成するためには、お互いに比べるとプロセスが少しずつ異なります。 まず、いずれかを選択して実装を開始する必要があります。 開始から始めましょう...

firebaseをアプリケーションに使用してhttps://console.firebase.google.com/にプロジェクトを作成する一般的なプロセスです。

プロジェクトを作成すると、アプリケーションで使用されるfirebase鍵を見ることができます。これはhttps://console.firebase.google.com/project/project-[your_project_number]/overviewにあります。

あなたはこれを既に済ませていますが、https://console.firebase.google.com/project/project-[your_project_number]/database/ruleshttps://console.firebase.google.com/project/project-[your_project_number]/storage/rulesにデータベースとストレージのパーミッションを与えることを忘れないでください。ただそれはあなたがで任意のverifactionのに公に必要にそれを使用することはできないことを定義します

service firebase.storage { 
    match /b/project-[your_project_number].appspot.com/o { 
    match /{allPaths=**} { 
     allow read, write; 
    } 
    } 
} 

...ただ、これを残して...保存のために

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

をこれを残すデータベースの

firebase end。任意の種類の確認を追加する場合は、https://console.firebase.google.com/project/project-[your_project_number]/authentication/providersにアクセスしてください。

今すぐSERVER to WEB APPLICATION通知を開始してください。まずは、Android、iOS、Web(指定したGoogle Chrome)のみでFCM(firebase cloud messaging)を実装できることをお知らせします。ですから、すべてのブラウザでそれを使用するには、firebaseデータベースを実装する必要があります。js側です。あなたは、あなたが概要で見たようなものを置く必要があります。

<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script> 
<script> 
    // Initialize Firebase 
    var config = { 
    apiKey: "your_api_key", 
    authDomain: "project-[your_project_number].firebaseapp.com", 
    databaseURL: "https://project-[your_project_number].firebaseio.com", 
    storageBucket: "project-[your_project_number].appspot.com", 
    }; 
    firebase.initializeApp(config); 
</script> 

イベントまたは通知をトリガーするサーバー側では、CURLを使用できます。あなたはNode.jsを使用していると述べているので、https://firebase.google.com/docs/server/setup#add_firebase_to_your_appがあなたを助けることができます。 私はCodeIgniterを使ってPHP上のサーバー側でCURLを適用することでそれを達成しました。私は以下のコードを添付しています。あなたはのは、それがサーバ側から発射されたときに、我々は、通知を得ることができる方法を見てみましょう今ここにCURL例https://firebase.google.com/docs/database/rest/save-data#section-put

<?php 
if (!defined('BASEPATH')) exit('No direct script access allowed'); 

//PHP CURL FOR NOTIFICATION 
function booking_notification($notif_arr, $notif_type) 
{ 
    //GET CI 
    $CI =& get_instance(); 

    $url = 'put_your_firebase_database_url_here'; 
    $key = 'put_firebase_key'; 
    $notif_arr = {'Key':'values'};//THIS IS THE DATA WHAT YOU WILL NEED TO SHOW ON FRONT END TO NOTIFY 
    $notif_type = 'notification'; //THIS IS THE NAME JSON WHICH WILL BE CREATED IF NOT EXIST AT FIREBASE DATABASE 
    $headers = array(
     'Authorization: key=' . $key, 
     'Content-Type: application/json' 
    ); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url."/".$notif_type.".json"); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    // Disabling SSL Certificate support temporarly 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($notif_arr)); 

    // Execute post 
    $result = curl_exec($ch); 

    if ($result === FALSE) { 
     die('Curl failed: ' . curl_error($ch)); 
     // Close connection 
     curl_close($ch); 

     return FALSE; 
    } 
    else 
    { 
     // Close connection 
     curl_close($ch); 
     return TRUE; 
    } 
} 

を見ることができます。

JAVASCRIPT

var fireBaseJSONref = firebase.database().ref().child("notification"); //BY THIS YOU CAN GET THE JSON OF FIREBASE DATABASE 
fireBaseJSONref.on('child_added', function(snapshot) { 
     if (!ignoreItems) { 
      console.log(snapshot.val());//THIS WILL PRINT THE DATA WHAT YOU HAVE TRIGGERD FROM SERVER 
     } 
}); 
/* WHEN FIRST TIME ANY DATA SENT TO DATABASE OF FIREBASE AFTER PAGE LOAD */ 


fireBaseJSONref.once('value', function(snapshot) {ignoreItems = false}); //THIS WILL HELP YOU TO NOT TO CALL FOR PREVIOUSLY ADDED ITEM IN FIREBASE DATABASE. WHEN NEW DATA WILL BE ONLY THEN IT WILL CALL. 

これはあなたを助ける、あなたが混乱した場所を把握します。これはあなたのために働くかどうか私に教えてください、私はアンドロイドとiOSのためにもそれを改善します。

+0

うわー、すばらしい説明。私はこれを非常に慎重に梳き、それがどのように進むのかを教えていきます。 – Liquidmetal

+0

したがって、あなたのPHPコードでは、ほとんどのcurlリクエストからなるphp関数を使用しています。これは意味があります。私は、PHPコードがどのように通知されるかはわかりません。 私が見ているように、cURLを使用してGCM通知を送信するには、https://android.googleapis.com/gcm/sendのようなものを含める必要があります サンプルに含まれているcURLのサンプル必要に応じて通知する)、何か根本的なものが欠けていますか?私はまた、キー値のペアに含まれていない限り、どのユーザーが通知を受け取るかをPHPがどのように選択するかを見ません...真剣に、すべての助けをありがとう! – Liquidmetal

+0

ええ、あなたは正しいです、もう一度私はそれがFCMではないことに注意を払いたいと思います。 Webベースアプリケーションでリアルタイムデータを取得するためのFirebaseデータベースの実装です。それをどのようにして実行するかは、あなた次第です。プッシュ通知のようには機能しません。私はそれを実装することによってリアルタイムの通知だけでなく、チャットアプリを作成しました。私はいくつかの時間を得るようにアンドロイドプッシュ通知プロセスを含めます。 –

関連する問題