首页 > 解决方案 > 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

标签: javascriptfirebasefirebase-realtime-databasegoogle-cloud-functions

解决方案


如果您需要在“users/${userId}”处获取数据库的全部内容,那么您现在所做的确实是唯一的方法。

尽管您不应该真正将回调的使用与once(). 只使用 Promise 就足够了。

const snapshot = await database.ref(`users/${userId}`).once('value');
const userData = snapshot.val();
console.log('userData', userData)

推荐阅读