obu*_*oon 2 node.js express firebase firebase-realtime-database
我想使用 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;
});
Run Code Online (Sandbox Code Playgroud)
我尝试过什么
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
Run Code Online (Sandbox Code Playgroud)
更新的解决方案:
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("====================================");
}
Run Code Online (Sandbox Code Playgroud)
您可以继续在 query() 中添加这些 QueryConstraints:
const db = getDatabase();
const dbRef = ref(db, "/Countries")
const queryConstraints = [orderByChild("name"), equalTo('value')]
const dataSnapshot = await get(query(dbRef, ...queryConstraints))
Run Code Online (Sandbox Code Playgroud)
还结帐:
| 归档时间: |
|
| 查看次数: |
2539 次 |
| 最近记录: |