firebase 9 查询实时数据库的关键
Posted
技术标签:
【中文标题】firebase 9 查询实时数据库的关键【英文标题】:firebase 9 query realtime database for key 【发布时间】:2022-01-05 23:48:16 【问题描述】:我想使用 firebase 9 查询实时数据库,我之前使用过 admin sdk,我有这个可以工作的示例,但是我在调整到版本 9 时遇到了问题。我找不到任何关于如何使用这些模块化方法进行查询的可靠示例.任何示例将不胜感激。
版本 8
return admin
.database()
.ref("Countries")
.orderByChild("name")
.equalTo(query)
.once("value")
.then((data) =>
if (data.exists())
const obj = Object.keys(data.val())[0];
const country = data.val()[obj];
return country;
else
return null;
)
.catch((error) =>
console.log("error finding country name", error);
return null;
);
我尝试过的
const getDatabase, child, get, ref ,orderByChild,equalTo = require("firebase/database");
const toFind = "USA"
const dbRef = ref(getDatabase());
const query = await get(child(dbRef, `countries`));
//orderByChild
//equalTo
更新的解决方案:
const dbRef = ref(db, "/countries");
const queryConstraints = [orderByChild("name"), equalTo(name)];
const country = await get(query(dbRef, ...queryConstraints));
if (country.exists())
console.log("found by name", country.val());
else
console.log("No data available");
return null;
catch (error)
console.log("====================================");
console.log("error getting country", error);
console.log("====================================");
【问题讨论】:
【参考方案1】:您可以继续在 query() 中添加这些 QueryConstraints:
const db = getDatabase();
const dbRef = ref(db, "/Countries")
const queryConstraints = [orderByChild("name"), equalTo('value')]
const dataSnapshot = await get(query(dbRef, ...queryConstraints))
也结帐:
How to read, write and query data in Firebase Realtime Database using Firebase SDK v9 (Modular) Working with lists on web【讨论】:
我得到 TypeError: db._checkNotDeleted is not a function 。我不需要在 getDatabase() 的某个地方传递吗? @obumoon 是的,更新了答案。感谢收看。以上是关于firebase 9 查询实时数据库的关键的主要内容,如果未能解决你的问题,请参考以下文章