Twilio 函数不写入 Firebase
Twilio Function not writing to Firebase
我正在尝试使用 Twilio 函数(与 AWS Lambda 函数几乎完全相同,如果您熟悉的话)写入我的 Firebase 数据库,但我无法这样做。 Firebase 正在为我生成一个参考密钥,但当我检查它时,我的 Firebase 数据库中没有任何内容。我没有从我的函数中看到任何错误消息。这是我正在使用的东西。
var firebase = require('firebase');
exports.handler = function(context, event, callback) {
var firebaseConfigs = {
apiKey: "[my_api_key]",
authDomain: "[my_domain].firebaseapp.com",
databaseURL: "https://[my_domain].firebaseio.com",
projectId: "[my_project_id]",
storageBucket: "[my_domain].appspot.com",
messagingSenderId: "[my_sender_id]"
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfigs);
console.log('Initialized Firebase app');
}
console.log('saving to firebase');
var ref = firebase.database().ref().push({
emailAddress: event.emailAddress,
test: 'test'
});
console.log('saved to ',ref.key)
setTimeout(function() {}, 3000);
callback();
};
在我的函数日志中,我看到以下内容:
- 执行开始
- 已初始化 Firebase 应用程序
- 保存到 Firebase
- 保存到 [-LdVpr...]
- 执行在 974.16 毫秒内结束,使用 97 MB
很明显 Firebase 正在为我生成一个密钥,但是密钥 [-LdVpr...] 没有添加到我的数据库中。可能发生了什么,我该如何进一步解决这个问题?
日志中有 Execution ended in 974.16ms
,听起来像
setTimeout(function() {}, 3000);
callback();
并没有真正按照您的意愿去做(等待 3 秒然后 return 到 Twilio?) .
我会试试这个...
setTimeout(function() {
callback();
}, 3000);
...如果这是您想要或需要做的。
阅读本文后更新https://firebase.google.com/docs/reference/js/firebase.database.Reference.html#push
push()
需要第二个参数,"Callback called when write to server is complete."
,所以,我也会尝试这样的事情:
var ref = firebase.database().ref().push({
emailAddress: event.emailAddress,
test: 'test'
}, function (error) {
if (error) {
console.log(error);
callback();
} else {
console.log('Push successful');
callback();
}
});
也许你根本不需要那 3 秒的东西。
我正在尝试使用 Twilio 函数(与 AWS Lambda 函数几乎完全相同,如果您熟悉的话)写入我的 Firebase 数据库,但我无法这样做。 Firebase 正在为我生成一个参考密钥,但当我检查它时,我的 Firebase 数据库中没有任何内容。我没有从我的函数中看到任何错误消息。这是我正在使用的东西。
var firebase = require('firebase');
exports.handler = function(context, event, callback) {
var firebaseConfigs = {
apiKey: "[my_api_key]",
authDomain: "[my_domain].firebaseapp.com",
databaseURL: "https://[my_domain].firebaseio.com",
projectId: "[my_project_id]",
storageBucket: "[my_domain].appspot.com",
messagingSenderId: "[my_sender_id]"
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfigs);
console.log('Initialized Firebase app');
}
console.log('saving to firebase');
var ref = firebase.database().ref().push({
emailAddress: event.emailAddress,
test: 'test'
});
console.log('saved to ',ref.key)
setTimeout(function() {}, 3000);
callback();
};
在我的函数日志中,我看到以下内容:
- 执行开始
- 已初始化 Firebase 应用程序
- 保存到 Firebase
- 保存到 [-LdVpr...]
- 执行在 974.16 毫秒内结束,使用 97 MB
很明显 Firebase 正在为我生成一个密钥,但是密钥 [-LdVpr...] 没有添加到我的数据库中。可能发生了什么,我该如何进一步解决这个问题?
日志中有 Execution ended in 974.16ms
,听起来像
setTimeout(function() {}, 3000);
callback();
并没有真正按照您的意愿去做(等待 3 秒然后 return 到 Twilio?) .
我会试试这个...
setTimeout(function() {
callback();
}, 3000);
...如果这是您想要或需要做的。
阅读本文后更新https://firebase.google.com/docs/reference/js/firebase.database.Reference.html#push
push()
需要第二个参数,"Callback called when write to server is complete."
,所以,我也会尝试这样的事情:
var ref = firebase.database().ref().push({
emailAddress: event.emailAddress,
test: 'test'
}, function (error) {
if (error) {
console.log(error);
callback();
} else {
console.log('Push successful');
callback();
}
});
也许你根本不需要那 3 秒的东西。