我已使用 Node.js 8.10 运行时在我的 AWS lambda 函数中初始化了 firebase。这是相关代码:
'use strict';
const https = require('https'),
firebase = require('firebase-admin'),
admin = require('firebase-admin');
//Initialize firebase
let serviceAccount = require('./one-deed-6b407-firebase-adminsdk-ha9ud-3c7ddb5906.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
let db = admin.firestore();
后来在代码中我创建了一个 firestore 数据库:
exports.handler = (event, context, callback) => {
var docRef = db.collection('users').doc('alovelace');
var setAda = docRef.set({
first: 'Ada',
last: 'Lovelace',
born: 1815
});
}
但是,即使代码在本地运行时正常工作,也没有添加相关文档。
最佳答案
查看函数的执行时间。它应该很小。 lambda 代码不会等待 Firestore 函数执行。
正如 @doug-stevenson 指出的那样,您没有使用 promise 。 将 lambda 函数更改为 async 并在集合前面放置一个等待。 我希望这会有所帮助。
exports.handler = async function(event, context, callback) {
var docRef = db.collection('users').doc('alovelace');
let setAda = await docRef.set({
first: 'Ada',
last: 'Lovelace',
born: 1815
});
}
关于node.js - Firestore 无法与 AWS Lambda 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51935338/