2017-05-22 3 views
0

を値を送信:クラウド機能Firebase、エラーが私はfirebaseから戻って単純な値を送信しようとしているが、この<a href="https://i.stack.imgur.com/u5MmO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/u5MmO.png" alt="enter image description here"></a></p> <p>mycodeがあるようなエラーが表示されて戻って

exports.getTotalPrice = functions.https.onRequest((req, res) => { 
    admin.database().ref('carresult').once('value').then(function(snapshot) { 
    var totalPrice = snapshot.val().price; 
    res.status(200).send(totalPrice); 
    }); 

}); 

PS。エラー65000は、私が返信するのに必要な値です。

Express documentation for res.send([body])

答えて

1

を示し:

身体パラメータは、バッファオブジェクト、文字列、オブジェクト、またはデータベース内 アレイ

することができ、/carresult/priceは、おそらく数として記憶されますsend()の無効なパラメータにします。あなたのオプションはStringとして保存してに変換してからsend()に渡すか、番号を残してオブジェクトのプロパティとして返信してください:send({price: totalPrice})。これは難しいパターンであること

注:

exports.getTotalPrice = functions.https.onRequest((req, res) => { 
    admin.database().ref('carresult').once('value').then(function(snapshot) { 
    var totalPrice = snapshot.val().price; 
    res.status(200).send(String(totalPrice)); // <= ADDED String() 
    }); 
}); 

もフランクバンPuffelenがthis answerで説明したようにHTTPS機能でデータベースリード(非同期)を行うことは、危険であることに注意してください。データベースへの呼び出しは非同期的に で発生し、完了するまでに時間がかかる場合があります。 を待っている間に、HTTP機能がタイムアウトし、Google Cloud Functionsシステムによって終了することがあります...一般的なルールとして、FirebaseデータベースSDKまたはそのREST APIを使用してデータベースにアクセスし、ミドルウェアとしてのHTTP機能

+0

ありがとう、データが文字列として私に送り返されました。 –

関連する問題

 関連する問題