【问题标题】:Using Firebase API in Lambda Functions AWS在 Lambda 函数 AWS 中使用 Firebase API
【发布时间】:2016-09-22 05:38:31
【问题描述】:

有人能告诉我怎么做吗?

这是我到目前为止所拥有的,它没有将数据添加到我的数据库中

我在没有使用 lambda 函数的情况下在常规 Web 应用程序上对此进行了测试,它可以正常工作

var http = require('http');
var firebase = require('firebase');

exports.handler = (event, context, callback) => {

        var config = {
            apiKey: "AIzaSyCpk23423Iy_akmUniqUJhLt234324YPBE1vD7At8Laj4",
            authDomain: "echoproject-blah.firebaseapp.com",
            databaseURL: "https://echoproject-blah.firebaseio.com",
            storageBucket: "echoproject-blah.appspot.com",
            messagingSenderId: "83962234234322"
        };


   firebase.initializeApp(config);

   firebase.datetbase().ref('/employee/').push({
      med_number: Math.floor(Math.random() * 1000),
      full_name: 'John Smith',
      date_employed: Date.now(),
      email: '23432432@yahoo.com',
      phone_number: '+123423423',
      profile_picture : 'blah.img'
   }).catch(function(err){
    console.log(err);
   });



    if (event.session.new) {
        onSessionStarted({ requestId: event.request.requestId }, event.session);
    }

    if (event.request.type === 'LaunchRequest') {
        onLaunch(event.request,
            event.session,
            (sessionAttributes, speechletResponse) => {
                callback(null, buildResponse(sessionAttributes, speechletResponse));
            });
    } else if (event.request.type === 'IntentRequest') {
        onIntent(event.request,
            event.session,
            (sessionAttributes, speechletResponse) => {
                callback(null, buildResponse(sessionAttributes, speechletResponse));
            });
    } else if (event.request.type === 'SessionEndedRequest') {
        onSessionEnded(event.request, event.session);
        callback();
    }
   } catch (err) {
    callback(err);
     }



}

我错过了什么?

我正在尝试将 firebase 用于我的 Amazon Echo。会不会很麻烦?

我的 firebase.database 没有被识别吗?

更新

这些solutions 都不适合我

**已解决**

因此,在经历了很多挫折之后,我决定放弃 firebase Nodejs sdk 并使用 Firebase Endpoint url

var myJSONObject = {
            med_number: Math.floor(Math.random() * 1000),
            full_name: 'John Bruh',
            date_employed: Date.now(),
            email: 'vi43544tle@yahoo.com',
            phone_number: '+345345',
            profile_picture : '34534534'
        };
request({
    url: "https://echoproject-c78fghfgh6f.firebaseio.com/rest/saving-data/users.json",
    method: "POST",
    json: true,   // <--Very important!!!
    body: myJSONObject
}, function (error, response, body){
    if(error) console.log(error);
    console.log(response);
});

【问题讨论】:

  • 是否有任何错误消息可以包含在您的问题中?
  • @cartant 所以我在 push 方法之后添加了一个 catch 方法,但这很奇怪,因为它甚至没有 console.log 任何东西。如果您更熟悉 Lambda 函数的工作方式,但我觉得我的 firebase 的方法被跳过了?因为我认为 nodejs lambda 的工作方式是因为它是异步的,所以它在 firebase 方法完成初始化之前结束?如果我错了,请告诉我,这只是一个疯狂的猜测
  • 很高兴听到您找到了解决方案。但是 Stack Overflow 不是一个常规论坛,因此请将您的解决方案添加为答案,而不是添加到您的问题中。这也消除了在标题中指出您的问题已解决的需要:一旦您接受自己的答案,系统就会知道您的问题已解决并相应地标记它。

标签: javascript node.js firebase firebase-realtime-database aws-lambda


【解决方案1】:

拥有数据库而不是“数据库”可能会有所帮助:

firebase.datetbase().ref('/employee/').push({

【讨论】:

  • 抱歉,这只是一个错字。还是有问题
猜你喜欢
  • 2018-09-11
  • 2020-05-28
  • 2017-06-04
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2020-03-29
  • 2020-11-21
  • 2018-08-28
相关资源
最近更新 更多