0

URLを取得するとすぐに新しいエントリが追加されますが、リクエストがハングしてタイムアウトしていることがわかります。どうして?Firebase Realtime Databaseへのクラウド機能の書き込みがタイムアウトします

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase); 

exports.add = functions.https.onRequest((request, response)=> 
{ 
    var ref = admin.database().ref("jobs"); 
    var childRef = ref.push(); 
    childRef.set 
    (
     { 
      title: "test", 
      pay: 100 
     } 
    ); 
}) 

コードは次の例に基づいています。 HTTPリクエストによってトリガhttps://firebase.google.com/docs/database/admin/save-data

結果

{"error":{"code":500,"status":"INTERNAL","message":"function execution attempt timed out"}} 

答えて

0

クラウド機能は、そうでない場合は、実行を継続し、タイムアウトに達すると、send()redirect()、またはend()でそれらを終了することにより終了する必要があります。 terminate HTTP functions section of the documentation on HTTP triggersから

常にsend()redirect()、またはend()とHTTPの機能を終了します。そうしないと、機能が引き続き実行され、システムによって強制終了される可能性があります。 Sync, Async and Promisesも参照してください。

exports.add = functions.https.onRequest((request, response)=> 
{ 
    var ref = admin.database().ref("jobs"); 
    var childRef = ref.push(); 
    childRef.set 
    (
     { 
      title: "test", 
      pay: 100 
     } 
    ); 
    response.status(200).send("OK!"); 
}) 

したがって、あなたの例では、あなたが応答を送信することにより、要求を終了することができます

関連する問題