node.js - 在云函数定义之外初始化数据库引用是否安全?
问题描述
我将以下内容写为“我的第一个云功能”的 hello-world 类型:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
const db = admin.database();
const messagesRef = db.ref('/messages/general');
export const sendMessage = functions.https.onCall(async (data, context) => {
const writeResult = await messagesRef.push(data.text)
return {
result: writeResult
};
});
请注意,admin、db 和 messagesRef 都在函数定义之外声明,以便不必每次都这样做。
这种方法有效吗?这样做有什么问题吗?例如,如果数据库连接以某种方式丢失(可能是由于中断),这会重新启动并安全地重新连接吗?
解决方案
aDatabaseReference
所做的只是指向数据库中的某个位置,因此此时不会发生与数据库的交互。由于messageRef
不依赖于传入的任何数据sendMessage
,因此可以在全局范围内安全地对其进行初始化。
推荐阅读
- javascript - 如何使用 FlatList 在 react-native 中渲染异构数据?
- postman - 如何动态设置 Postman 环境变量键
- oop - 如何在 Haskell 中使用类型类以及与 java 接口的区别
- ibm-cloud - ibm_platform_services/global_search api 的一次响应中最多可以返回多少条记录
- sql-server - 如何防止用户(拥有 db_datawriter)能够通过管理工作室进行连接?
- python - discord webhook ip 抓取器
- jquery - 禁用 if...else 上的按钮
- python - IBM Cloud 中的自定义映像创建间歇性超时
- sql - 通过将三个表与 Temp 表组合来更新查询
- python - 当 scipy.ndimage.zoom 使用 order 1 和 order 3 时,输出中引入了什么区别?