繁体   English   中英

除非回调存在延迟,否则无法将数据从AWS Lambda推送到Firebase

[英]Pushing data to firebase from AWS Lambda won't work unless there is a delay on the callback

参见下面的代码。 我正在研究将数据推送到Firebase数据库的AWS lambda函数。 我的问题是,使它正常工作的唯一方法是将setTimeout放在处理程序中的回调函数上。 我不明白为什么要这样做。 回调开始之前,请求是否不会发送到firebase。

这行不通。

var admin = require("firebase-admin");

admin.initializeApp({
  credential: admin.credential.cert("./info.json"),
  databaseURL: "https://app.firebaseio.com"
});

exports.handler = (event, context, callback) => {
    let x = admin.database().ref(`/12851/Winners`);
    x.push(525555);
    callback(null, {Winner: true});
};

确实可以。

var admin = require("firebase-admin");

admin.initializeApp({
  credential: admin.credential.cert("./info.json"),
  databaseURL: "https://app.firebaseio.com"
});

exports.handler = (event, context, callback) => {
    let x = admin.database().ref(`/12851/Winners`);
    x.push(525555);
    setTimeout(()=>{
        callback(null, {Winner: true});
    },1500)
};

连线到.then因为.push返回一个promise:

var admin = require("firebase-admin");

admin.initializeApp({
  credential: admin.credential.cert("./info.json"),
  databaseURL: "https://app.firebaseio.com"
});

exports.handler = (event, context, callback) => {
    let x = admin.database().ref(`/12851/Winners`);
    x.push(525555).then(function(){
        callback(null, {Winner: true});
    });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM