如何在JavaScript的Firebase云函数中查询带空格的字段?
解决方案
在JavaScript中访问包含空格的对象属性时,不能使用.语法,必须使用方括号访问语法,将带空格的完整字段名以字符串形式传入即可,不需要修改现有数据库结构。
针对不同数据库的取值方式
1. Firebase Realtime Database
通过snapshot.val()拿到数据对象后,直接用方括号读取:
const eventData = snapshot.val(); const host = eventData.Host; // 原有正常字段的取值方式 const eventName = eventData["Event Name"]; // 带空格字段的正确取值方式
如果你之前尝试括号语法没有生效,大概率是没有将字段名用引号包裹为字符串格式,直接写变量形式会触发语法错误。
2. Cloud Firestore
直接使用DocumentSnapshot的get方法,传入带空格的字段名字符串即可:
const host = snapshot.get("Host"); const eventName = snapshot.get("Event Name");
注意事项
- 传入的字段名字符串要和数据库中的命名完全匹配,包括大小写、空格数量,多一个或少一个空格都会导致取值失败
- 不需要额外做字符转义、空格替换等操作,直接完整写入字段名即可
内容的提问来源于stack exchange,提问作者Steve Butler
相关产品推荐
相关产品推荐

