2
獲取數據庫數據的簡單雲端功能不起作用。Firebase超時的雲端函數
getusermessage()
不工作
錯誤:
Function execution took 60002 ms, finished with status: 'timeout'
Index.JS用於獲取數據庫的結果。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const cors = require('cors')({origin: true});
// Take the text parameter passed to this HTTP endpoint and insert it into the
// Realtime Database under the path /messages/:pushId/original
exports.addMessage = functions.https.onRequest((req, res) => {
// Grab the text parameter.
const original = req.query.text;
// Push the new message into the Realtime Database using the Firebase Admin SDK.
admin.database().ref('/messages').push({original: original}).then(snapshot => {
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
res.redirect(303, snapshot.ref);
});
});
// Listens for new messages added to /messages/:pushId/original and creates an
// uppercase version of the message to /messages/:pushId/uppercase
exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
.onWrite(event => {
// Grab the current value of what was written to the Realtime Database.
const original = event.data.val();
console.log('Uppercasing', event.params.pushId, original);
const uppercase = original.toUpperCase();
// You must return a Promise when performing asynchronous tasks inside a Functions such as
// writing to the Firebase Realtime Database.
// Setting an "uppercase" sibling in the Realtime Database returns a Promise.
return event.data.ref.parent.child('uppercase').set(uppercase);
});
var db = admin.database();
exports.getUserMessage = functions.https.onRequest((req, res) => {
var query = db.ref("messages").orderByKey();
query.once("value")
.then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var key = childSnapshot.key;
// childData will be the actual contents of the child
var childData = childSnapshot.val();
});
});
});
什麼是O做錯了?
@你猜是對的,但我沒有得到你的答案,因爲我說我正在嘗試雲功能。你能指出我在getUserMessage()中做了什麼錯誤嗎? –
正如我所說的,你的函數沒有產生對客戶端的響應。你絕對需要發送回覆。有關更多詳細信息,請參閱HTTPS函數的文檔,尤其是名爲「終止HTTP函數」的部分。 https://firebase.google.com/docs/functions/http-events –
@twister_void你錯過了函數Doug提到的return語句 –