自定义Firestore辅助函数命名困惑:求替代含‘my’的命名方案
Firestore文档获取辅助函数的命名方案建议
结合你的需求(区分官方函数、清晰表达功能、避免生硬命名),以及你这段辅助函数的核心特性——直接返回文档数据而非Snapshot、自动校验文档存在性和数据有效性并抛出错误,给你几个实用的命名方向:
优先推荐的命名
getDocData:
官方Firestore的getDoc返回的是DocumentSnapshot,而你的函数直接返回文档的实际数据(DocumentData),这个命名能直观体现核心差异,既不会和官方函数混淆,又清晰说明功能,完全符合常规的JS/TS函数命名习惯。getRequiredDocData:
突出函数的「强校验」特性——如果文档不存在或数据为空会直接抛出错误,明确告知调用者:这个函数一定会返回有效的数据(否则报错),和官方getDoc允许返回不存在快照的行为形成明确区分。
备选命名
fetchDocData:
用fetch替代get,既保留动作感,又和官方getDoc拉开命名差异,适合强调「远程获取」场景的语境。retrieveDocData:retrieve比get更偏向「获取并确保可用」的语义,也能清晰传递函数的核心价值——拿到可用的文档数据,而非仅仅获取快照。
不推荐的命名分析
getMyDoc:带My的命名过于个人化,团队协作时语义模糊,无法体现函数的实际作用,确实属于不良实践。getDocHelper:Helper这个后缀太宽泛,没有说明具体「帮了什么忙」,其他开发者看到名字无法快速理解函数的特性。docGetSimplified:不符合JS/TS函数「动词开头」的常规命名逻辑,语序别扭,可读性较差。
你的示例代码(适配推荐命名后的版本)
const getDocData = async (collectionId: string, documentId: string): Promise<DocumentData> => { const db = admin.firestore() const docRef = db.collection(collectionId).doc(documentId); const doc = await docRef.get() if (!doc.exists) { functions.logger.error(`Doc doesn't exist with collectionId ${collectionId} and documentId ${documentId}`) throw new Error(`Doc doesn't exist with collectionId ${collectionId} and documentId ${documentId}`) } else { const docData = doc.data(); if (docData === undefined) { functions.logger.error(`Doc exists but data() is undefined with collectionId ${collectionId} and documentId ${documentId}`) throw new Error(`Doc exists but data() is undefined with collectionId ${collectionId} and documentId ${documentId}`) } else { return docData; } } }
内容的提问来源于stack exchange,提问作者esafresa
相关产品推荐
相关产品推荐

