首页 > 解决方案 > Firebase 数据库每 1 小时更新一次,使用 AWS lambda 函数

问题描述

在我的场景中,我需要每 1 小时更新一次 firebase 数据库。所以我决定在 AWS lamda 函数中运行它,因为云函数中没有计划触发器。下面是我的代码无法将 firebase 库添加到 AWS Lamda 函数。

        'use strict';


         import * as admin from 'firebase-admin';
         var Firebase = require('firebase');
         exports.handler = (event, context, callback) => {
        // TODO implement

        context.callbackWaitsForEmptyEventLoop = false;  //<---Important

         var config = {
         apiKey: "AIzaSy########################",
         authDomain: "########.firebaseapp.com",
         databaseURL: "https://a########.firebaseio.com",
         projectId: "aws#####",
         storageBucket: "",
         messagingSenderId: "83526964121"
         };

出现以下错误:

找不到模块‘firebase’”

“errorMessage”:“意外的令牌导入”、“errorType”:“SyntaxError”、“stackTrace”:[“^^^^^^”、“SyntaxError:意外的令牌导入”、“createScript (vm.js:56:10) )",

找不到模块‘firebase’”

如何将 Firebase 模块添加到 Aws Lamda 功能。请给我提示.. 提前致谢

标签: androidamazon-web-servicesfirebasefirebase-realtime-database

解决方案


如果您的管理员成功导入到您的 lamda 函数中,只需使用凭据(json 文件或必填字段)对其进行初始化。请参阅:https ://firebase.google.com/docs/admin/setup 。

您不需要 firebase 依赖来执行此操作,因为 lamda 功能对用户不可见,它可以使用管理员访问您的数据库。

现在,当您的 admin sdk 初始化时,您只需要像这样(javascript 样式)获取数据库引用:

let db= admin.database();

现在您已经引用了数据库,并且您可以轻松地写入任何位置,因为管理员可以完全访问您的数据库。

db.ref().child('/someNode').set({"key":"value"});

推荐阅读