从 firebase 实时数据库查询

query from firebase realtime database

我正在尝试从我的实时数据库中获取过滤后的数据。在此示例中,我只想使用特定的 uid 获取这些一次:

我尝试使用 firebase 文档中的代码片段获取数据:

const db = getDatabase();
const auth = getAuth();
    
const myUserId = auth.currentUser.uid;
const myOffersRef = query(ref(db, 'allOffers/'), orderByChild('uid'), startAt(user.uid));

但是如何从 const myOffersRef 中获取数据?

谢谢!

reading data 上的文档所示,您可以使用 get 获取路径或查询中的数据。

const myOffersRef = query(ref(db, 'allOffers/'), orderByChild('uid'), equalTo(user.uid));

get(myOffersRef).then((snapshot) => {
  snapshot.forEach((child) => {
    console.log(child.key, child.val().uid);
  });
}).catch((error) => {
  console.error(error);
});

请注意,我还将 startAt 更改为 equalTo,因为您可能只需要与 UID 匹配的节点,而不是从第一个匹配项开始的节点滑动(这是 startAt 确实如此)。

forEach 是必需的,因为一个查询可能有多个结果,因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。