javascript - Firebase 实时数据库获取父节点值 .val()
问题描述
/users
我有以下代码在我的对象树中查找特定更新。这工作正常,但似乎有点多余,因为我已经引用了我想要的用户节点的子节点。
exports.onUserKeyHelloCreate = functions
.region('europe-west1')
.database
.ref('users/{userId}/hello')
.onCreate(async (snapshot, context) => {
const userId = context.params.userId
let userData = null
await database.ref(`users/${userId}`).once('value', (userSnapshot)=>{
userData = userSnapshot.val()
})
console.log('userData', userData)
有没有更优雅的方式来访问整个用户节点,而不需要额外的往返.once('value')
?
亲切的问候/K
解决方案
如果您需要在“users/${userId}”处获取数据库的全部内容,那么您现在所做的确实是唯一的方法。
尽管您不应该真正将回调的使用与once()
. 只使用 Promise 就足够了。
const snapshot = await database.ref(`users/${userId}`).once('value');
const userData = snapshot.val();
console.log('userData', userData)
推荐阅读
- javascript - Firefox 扩展无法选择所有图像可能是由于 Canvas 函数 getImageData()
- php - 'and' 怎么写才好?
- java - 创建 Servlet 时遇到 Class not found 异常
- javascript - 有没有办法从浏览器复制“授权”参数?
- android - 在 ini 格式的文件中指定配置:
- javascript - 如何在 iframe 页面上运行 JavaScript?
- python - 如何在 Python 中优化二维字符串数组的序数编码?
- maven - mvn 命令无法识别 JAVA
- visual-studio-debugging - 尽管启用了本机代码调试,但仍无法从托管调试本机代码
- angular - 更改@input 值后,Angular Material 模态不会在冷组件上触发 ngChanges