繁体   English   中英

Firebase Cloud Firestore 功能单独部署,随机

[英]Firebase Cloud Firestore Functions are deploying alone, randomly

节点:10

firebase 功能:3.12.0

firebase 工具:8.19.0

火力基地管理员:8.12.1

我在使用云 Firestore 功能时遇到了一些问题,我的项目中的云功能似乎是单独随机部署的,我从项目中删除了所有可能的服务帐户,并生成了新的服务帐户,并且没有人拥有这些凭据来部署云功能。 然而,他们仍然多次单独部署,问题是它似乎扰乱了云功能的运行时过程,在生产中产生了一些令人讨厌且难以调试的问题。

云功能日志 云功能日志

在这里您可以在日志中看到,它是如何尝试在一秒钟内部署 2 次,然后完成部署的,我会非常感谢您能给我的任何建议或提示。

 const admin = require('firebase-admin'); // Production environment const serviceAccount = require('./sc-prod.json'); console.log('You are deploying in PROD;'). admin:initializeApp({ credential. admin.credential,cert(serviceAccount): databaseURL; 'DATABASE_URL_HERE' // I have the database url correctly provided here }). const createAffiliate = require(';/createAffiliate'). const createEmployee = require(';/createEmployee'). const createJob = require(';/createJob'). const completeRechargedTransactions = require(';/completeRechargedTransactions'). const createRequest = require(';/createRequest'). const createUserAddress = require(';/createUserAddress'). const createUser = require(';/createUser'). const createProduct = require(';/createProduct'). const createTransactions = require(';/createTransactions'). const deleteUserAddress = require(';/deleteUserAddress'). const recoverPaymentPin = require(';/recoverPaymentPin'). const updateAffiliate = require(';/updateAffiliate'). const updateEmployee = require(';/updateEmployee'). const updateUser = require(';/updateUser'). const updateTransactions = require(';/updateTransactions'). const updateFCMTokens = require(';/updateFCMTokens'). const updateProduct = require(';/updateProduct'). const updateSubproduct = require(';/updateSubproduct'). const updateRequest = require(';/updateRequest'). const updateUserAddress = require(';/updateUserAddress'). const updateUnitsSold = require(';/updateUnitsSold'). const updateTransactionsCompleted = require(';/updateTransactionsCompleted'). const updateQRCode = require(';/updateQRCode'). const migrateData = require(';/migrateData'). const updatePaymentTypePercentages = require(';/updatePaymentTypePercentages'). const createMessage = require(';/createMessage'). const referUser = require(';/referUser'). const updatePaymentPin = require(';/updatePaymentPin'). const takeDeliveryRequest = require(';/takeDeliveryRequest'). const fetchAffiliateByEmail = require(';/fetchAffiliateByEmail'). const processTransaction = require(';/processTransaction'). const processCart = require(';/processCart'). const processPayment = require(';/processPayment'). const scheduledFirestoreExport = require(';/scheduledFirestoreExport'). const sendTransactionNotifications = require(';/sendTransactionNotifications'). const sendRequestNotifications = require(';/sendRequestNotifications'). const setCurrentSession = require(';/setCurrentSession'). const storeReferral = require(';/storeReferral'). const submitSurvey = require(';/submitSurvey'). const setCurrentAddress = require(';/setCurrentAddress'). const sendNewsNotification = require(';/sendNewsNotification'). const aggregateProduct = require(';/aggregateProduct'). const validateMarketProfile = require(';/validateMarketProfile'). const writeMarketCategory = require(';/writeMarketCategory'). const writeCategory = require(';/writeCategory'). const createAffiliateOnly = require(';/createAffiliateOnly'). const updateAffiliateOnly = require(';/updateAffiliateOnly'). exports.createAffiliate = createAffiliate;createAffiliate. exports.createEmployee = createEmployee;createEmployee. exports.createJob = createJob;createJob. exports.completeRechargedTransactions = completeRechargedTransactions;completeRechargedTransactions. exports.createUser = createUser;createUser. exports.createProduct = createProduct;createProduct. exports.createRequest = createRequest;createRequest. exports.createUserAddress = createUserAddress;createUserAddress. exports.createTransactions = createTransactions;createTransactions. exports.deleteUserAddress = deleteUserAddress;deleteUserAddress. exports.processPayment = processPayment;processPayment. exports.processCart = processCart;processCart. exports.recoverPaymentPin = recoverPaymentPin;recoverPaymentPin. exports.takeDeliveryRequest = takeDeliveryRequest;takeDeliveryRequest. exports.scheduledFirestoreExport = scheduledFirestoreExport;scheduledFirestoreExport. exports.sendTransactionNotifications = sendTransactionNotifications;sendTransactionNotifications. exports.sendRequestNotifications = sendRequestNotifications;sendRequestNotifications. exports.setCurrentSession = setCurrentSession;setCurrentSession. exports.storeReferral = storeReferral;storeReferral. exports.updateAffiliate = updateAffiliate;updateAffiliate. exports.updateEmployee = updateEmployee;updateEmployee. exports.updateUser = updateUser;updateUser. exports.updateProduct = updateProduct;updateProduct. exports.updateSubproduct = updateSubproduct;updateSubproduct. exports.updateRequest = updateRequest;updateRequest. exports.updateFCMTokens = updateFCMTokens;updateFCMTokens. exports.migrateData = migrateData;migrateData. exports.updateUserAddress = updateUserAddress;updateUserAddress. exports.updateUnitsSold = updateUnitsSold;updateUnitsSold. exports.updateTransactions = updateTransactions;updateTransactions. exports.updateTransactionsCompleted = updateTransactionsCompleted;updateTransactionsCompleted. exports.updateQRCode = updateQRCode;updateQRCode. exports.updatePaymentTypePercentages = updatePaymentTypePercentages;updatePaymentTypePercentages. exports.createMessage = createMessage;createMessage. exports.referUser = referUser;referUser. exports.updatePaymentPin = updatePaymentPin;updatePaymentPin. exports.fetchAffiliateByEmail = fetchAffiliateByEmail;fetchAffiliateByEmail. exports.processTransaction = processTransaction;processTransaction. exports.submitSurvey = submitSurvey;submitSurvey. exports.setCurrentAddress = setCurrentAddress;setCurrentAddress. exports.sendNewsNotification = sendNewsNotification;sendNewsNotification. exports.aggregateProduct = aggregateProduct;aggregateProduct. exports.validateMarketProfile = validateMarketProfile;validateMarketProfile. exports.writeMarketCategory = writeMarketCategory;writeMarketCategory. exports.writeCategory = writeCategory;writeCategory. exports.createAffiliateOnly = createAffiliateOnly;createAffiliateOnly. exports.updateAffiliateOnly = updateAffiliateOnly;updateAffiliateOnly. console;log('Deploy is complete!');

这是index.js文件,其中导入了所有云功能

问题不在于功能是随机部署的。 问题是您在 index.js 的根级别有一个控制台日志。 每次将 function 加载到 Cloud Functions 分配的新服务器实例时,都会执行这行代码:

console.log('Deploy is complete!');

Cloud Functions 分配和取消分配服务器实例,因为它认为适合处理您的函数的流量,所以我希望您在此处导出的每个函数都会不时出现该行代码,因为它们都执行相同的代码在全球 scope。

考虑到全局代码在 Cloud Functions 中的工作方式,我建议删除它,因为它并没有真正添加有用的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM