Firebase实时数据库获取父节点值.val()

时间:2020-01-09 17:16:24

标签: javascript firebase firebase-realtime-database google-cloud-functions

我有以下代码,它们在我的/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

1 个答案:

答案 0 :(得分:1)

如果您需要数据库的全部内容为“ users / $ {userId}”,那么现在要做的实际上就是唯一的方法。

尽管您不应真正将回调的使用与once()返回的promise结合起来。仅仅使用诺言就足够了。

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