Я создаю API, который будет обновлять базу данных Firebase Realtime, используя Nodejs, Serverless, Javascript.
мой файл .js:
var admin = require("firebase-admin");
var serviceAccount = require("../xxxxxxx-firebase-adminsdk-xxxxxxx.json");
module.exports.saveState = (event, context, callback) => {
const body = JSON.parse(event.body);
var timestamp_create = body.timestamp_create;
try {
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://xxxxxxx.firebaseio.com"
});
} catch (err) {
console.log('Firebase initialization error', err.stack);
}
var db = admin.database();
var ref = db.ref('item/');
ref.child(timestamp_create).set({
state: 'empty'
}, function (error) {
if (error) {
console.log("Data could not be saved." + error);
} else {
console.log("Data saved successfully.");
return callback(null, {
headers: {
"Access-Control-Allow-Origin": "*",
},
statusCode: 200,
body: JSON.stringify({ msg: "Data saved successfully." })
});
}
});
};
Я развертываю API в AWS и тестируюна почтальоне:
Проблема и мои попытки:
- После сохранения элемента в базе данных Firebase Realtime, API не ответил на сообщение.Api попал в тайм-аут.
- Я проверил CloudWatch, журнал печатается
("Data saved successfully.")
, но он вообще не выполнял return callback
. - Я пробовал api в "автономном режиме без сервера", он работает нормально и возвращает сообщение.
API не возвращает обратный вызов в среде AWS (лямбда).
Любое предложение приветствуется.