【发布时间】:2017-03-03 03:28:47
【问题描述】:
我在 Firebase 中有一个数据库,我正在尝试从我的 Alexa Skill 中写入一些数据。该技能的 Node.js 代码位于 AWS Lambda 函数中,当该代码运行时,我想将一些数据推送到 Firebase。
我已经测试了在 Lambda 之外连接并推送到 Firebase 的代码,它的工作方式完全符合预期。以下是该代码:
var firebase = require('firebase');
firebase.initializeApp({
databaseURL: 'https://myapp.firebaseio.com',
serviceAccount: './myapp.json',
});
var cart = firebase.database().ref('/cart');
console.log(cart);
cart.push( {
item: 'apples', quantity: '1', amount: '0'
}, function(error) {
if (error) {
console.log("Data could not be saved." + error);
} else {
console.log("Data saved successfully.");
}
});
当从 Lambda 函数中执行时,相同的代码不会向数据库实例推送任何内容。我在网上读到 Lambda 超时限制可能是造成这种情况的一个原因,所以我将超时限制增加到一分钟,但它仍然没有按预期运行。我也尝试过使用 Firebase REST API 而不是他们的 Node.js SDK,但这也不起作用。从 AWS Lambda 内将数据推送到 Firebase 的正确方法是什么?
【问题讨论】:
-
您的数据库的权限是否允许未经身份验证的读/写?
-
您是否将 Lambda 函数放置在 VPC 中?
-
是的,数据库的权限是公开的。而且我认为我不必配置 VPC 角色,因为我没有尝试访问 Amazon 资源。我需要配置什么样的 VPC 角色?
-
有什么更新吗?我也在尝试这样做。
标签: amazon-web-services firebase firebase-realtime-database aws-lambda alexa-skills-kit