0

私が作ったオンラインアンドロイドチャットアプリに通知を加えたいと思います。私は、クラウド機能に新しいですので、私は、私が正常にNode.jsのコマンドラインを使用してサーバーにこのコードを展開している私のindex.jsがクラウド機能が動作しない

var firebase = require('firebase-admin'); 
var request = require('request'); 

var API_KEY = "xyz"; // Your Firebase 
Cloud Messaging Server API key 

// Fetch the service account key JSON file contents 
var serviceAccount = require("firebase.json"); 

// Initialize the app with a service account, granting admin privileges 
firebase.initializeApp({ 
credential: firebase.credential.cert(serviceAccount), 
    databaseURL: "https://firebaseio.com/" 
}); 
ref = firebase.database().ref(); 

function listenForNotificationRequests() { 
var requests = ref.child('notificationRequests'); 
requests.on('child_added', function(requestSnapshot) { 
var request = requestSnapshot.val(); 
sendNotificationToUser(
    request.username, 
    request.message, 
    function() { 
     console.log('notificationrecived, sent and removed- ' + 
request.username + ' '+ request.message,); 
    requestSnapshot.ref.remove(); 
    } 
); 
}, function(error) { 
    console.error(error); 
}); 
}; 

function sendNotificationToUser(username, message, onSuccess) { 
request({ 
url: 'https://fcm.googleapis.com/fcm/send', 
method: 'POST', 
headers: { 
    'Content-Type' :' application/json', 
    'Authorization': 'key='+API_KEY 
}, 
body: JSON.stringify({ 
    notification: { 
    title: message 
    }, 
    to : '/topics/'+username 
    }) 
    }, function(error, response, body) { 
    if (error) { console.error(error); } 
    else if (response.statusCode >= 400) { 
    console.error('HTTP Error: '+response.statusCode+' - ' 
    +response.statusMessage); 
    } 
    else {n 
    onSuccess(); 
    } 
    }); 
    } 

    // start listening 
    listenForNotificationRequests(); 

ファイルhttps://firebase.googleblog.com/2016/08/sending-notifications-between-android.html


ここで指定されたコードを使用してみました。 これはコンソールに表示されず、デバッグに追加したログも表示されません。 コードが機能していないようです。私は言及したリンクで与えられたすべてを行った。

+0

こんにちはチラグ。何がうまくいきませんか?それはエラーを投げているのですか? –

+0

いいえ、全く誤りはありません。 –

+0

データベースの変更に応答しないnode.jsコマンドラインにもデプロイが成功していますが、firbaseコンソールにはデプロイメントが表示されません –

答えて

0

Firebase管理者の設定ページhttps://firebase.google.com/docs/admin/setupには、Cloud Functionsの場合、次の行が表示されています初期化のための十分な: -

var firebase = require('firebase-admin'); 
firebase.initializeApp(functions.config().firebase); 

あなたが本を読んで行っているのであれば、あなたは上記のいずれかで、あなたのコード内で初期化ラインを交換して再度実行してみてください。

+0

ありがとうございました。しかし、私は他のコードを使ってみましたが、それは私のためにうまくいきました –

+0

どういう作品でも! –

関連する問題