【发布时间】:2021-10-01 08:17:00
【问题描述】:
我的计划 Cloud Function 正在按计划运行,但未成功写入我的 Firestore 实例。当我在本地将其作为 HTTP 请求触发时,该代码成功写入 FirestoreDB。但是一旦部署并添加了 PubSub 调度逻辑,它似乎不会写入 Firestore。
GCP 中的函数日志显示“ok”的完成状态。
想知道我做的事情是否在 JS 中有效,但 GCP 或 Pubsub 不喜欢,即使它在技术上是有效的 JS?
感谢任何帮助或指导。
const admin = require("firebase-admin");
const request = require("request");
const functions = require("firebase-functions");
const serviceAccount = require("......");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
const db = admin.firestore();
exports.scheduledPRRfunction = functions.pubsub
.schedule("every 2 minutes")
.timeZone("America/New_York")
.onRun(((context) => {
const Options = {
"method": "GET",
"url": "...",
"headers": {
"Cookie": ".....",
},
};
db.collection("myCollectionName").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
const documentIds = doc.id;
// Delete Documents
db.collection("myCollectionName")
.doc(documentIds).delete().then(() => {
}).catch((error) => {
console.log("Error removing document: ", error);
});
});
});
// Write Documents
request(Options, function(error, response) {
if (error) throw new Error(error);
const apiResponse = JSON.parse(response.body);
const parsedResponse = apiResponse["news_results"];
for (let i = 0; i < parsedResponse.length; i++) {
// console.log(i);
db.collection("myCollectionName").add(parsedResponse[i]);
}
});
}));
【问题讨论】:
标签: javascript node.js firebase google-cloud-functions google-cloud-pubsub