从 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
是必需的,因为一个查询可能有多个结果,因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
我正在尝试从我的实时数据库中获取过滤后的数据。在此示例中,我只想使用特定的 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
是必需的,因为一个查询可能有多个结果,因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。