【发布时间】:2019-07-02 18:25:31
【问题描述】:
我有一个 Firebase Node.js 后端部署并使用 >firebase serve(我用于初步开发)在本地运行。我能够在本地添加和更新文档(使用 Postman 模拟外部 REST API)。我的 Firebase 服务器也是如此。 不 起作用的是我在本地运行时的删除文档例程。当针对 Google 中的服务器版本运行时,它们可以正常工作。 (注意。当我运行早期的 8.x 版本的 Node 时,删除例程在本地工作。
这是我的 package.json
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "10"
},
"dependencies": {
"actions-on-google": "^2.7.0",
"firebase-admin": "^8.0.0",
"firebase-client": "0.1.1",
"firebase-functions": "^3.0.2",
"moment": "^2.24.0",
"request-promise-native": "^1.0.7",
"sprintf-js": "^1.1.2",
"twilio": "^3.32.0"
},
"devDependencies": {
"eslint": "^5.12.0",
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.1.6"
},
"private": true
}
我的本地环境是 Windows 7。我正在使用 Postman 调用本地版本和服务版本,两者的日志相同,没有显示错误。
我的本地Node版本是v10.16.0
最后是我的删除例程。
'use strict'
const functions = require('firebase-functions')
var firebaseClient = require('firebase-client')
var moment = require('moment');
const serviceAccount = require("./myconfiguration Info");
const admin = require('firebase-admin');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "my db url"
});
var db = admin.firestore()
db.settings({ timestampsInSnapshots: true })
var sessionRef = db.collection('Sessions')
exports.clearSessions = async function(){
const response = await sessionRef.get().then(snapshot=>{
snapshot.forEach((doc=>{
if (doc.exists){
doc.ref.delete()
}
}))
return true
}).catch(err=>{
console.error(err)
console.log('return false')
return false
})
console.log(response)
return response
}
【问题讨论】:
标签: node.js firebase google-cloud-firestore