0

予期しない動作が発生しましたFirebase Cloud Functions以下の機能が動作しないようです。私の期待は、/postsエンドポイントのデータがコンソールに記録されることです。私は関数の配備にエラーを起こさない。Firebase Cloudの機能が実行されていません

この機能は、クライアント/ユーザが関与していないバックエンド専用のアクションです。そのため、データベースイベントに基づくトリガーやhttpsは、エンドポイントを呼び出す別のサーバを設定することなく動作しません。

以下の理由でログに記録されない理由はありますか?

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


getScheduledPosts =() => { 
      admin.database().ref("/posts") 
      .orderByKey() 
      .once("value") 
      .then((snapshot) => { 
       console.log(snapshot); 
      }) 
      .catch(err => {console.log(err)}); 
      console.log("Posts Ran") 
     } 

    // Call this function 
    getScheduledPosts(); 

答えて

1

ここではすべてのクラウド機能を定義していません。クラウド関数が定義されていないため、作成したコードは決して実行されません。 index.jsからエクスポートする必要があり、その定義はfirebase-functions SDKを使用して構築する必要があります。あなたがdatabase triggerを(確かにそこにドキュメントを読んで)を作成しようとしている場合、それは次のようになります。

exports.makeUppercase = functions.database.ref('/posts/{id}') 
    .onWrite(event => { 
    // do stuff here 
}) 

は、関数があるときに実行されなければならない「一回限り」仕事をしようとしないでください配備された。クラウド機能の仕組みではありません。関数は、プロジェクトで発生するイベントに応答して実行されることを意図しています。

+0

私は問題を解決しようとしている間に実行されていたかどうかを確認するための関数呼び出しのみでした。私はエクスポートとして2番目の機能を持っていますが、いずれかを実行している – fitzmode

+0

追加するには、関数はバックエンドのみの操作のためですので、クライアントの要求ではなくバックエンド環境から呼び出す方法が欲しいです。それはクラウド機能では不可能ですか? – fitzmode

+0

オンデマンドでオンデマンドで関数を呼び出す場合は、HTTPS関数を使用し、そのURLにpingを実行します。エンドポイントを必要に応じて保護します。 –

関連する問題