javascript - 如何使用密钥检索 Firebase 中的子数据?
问题描述
我是 firebase 的新手。我想与 key 一起获取子数据。我在 nodejs 环境中尝试过以下代码。
var firebase = require("firebase");
firebase.initializeApp({
databaseURL: "https://some.firebaseio.com/"
});
var customer = firebase.database().ref().child('customer');
const fname = "name";
const lname = "title";
customer.orderByChild("partnerFirstName").equalTo(fname).on('child_added', function (snapshot) {
console.log(snapshot.val());
var fn = snapshot.val().partnerFirstName;
var custdata = snapshot.val();
console.log(custdata);
console.log("FirstName:"+fn);
if (custdata.partnerFirstName === fn) {
console.log(custdata);
}
});
输出如下
{
createdAt: '2018-03-20T23:25:35.212Z',
partnerEmail: 'beard@yahoo.com',
partnerFirstName: 'name',
partnerGender: 'male',
partnerLastName: 'title',
partnerPhone: '444-602-4444',
profilePicture: 'assets/profile_icon.png',
uid: 'x99wl8kkmJSENpNdVMXTXCh7amy2' }
FirstName: name
在这种情况下,我们没有得到记录的键值,但是 firstname 没有任何错误。
但是,当我们尝试以下代码时,密钥与数据一起出现,但名字未定义
var customer = firebase.database().ref().child('customer');
const fname = "Name";
const lname = "Title";
customer.orderByChild("partnerFirstName").equalTo(fname).on('value', function (snapshot) {
console.log(snapshot.val());
var fn = snapshot.val().partnerFirstName;
var custdata = snapshot.val();
console.log(custdata);
console.log("FirstName:"+fn);
if (custdata.partnerFirstName === fn) {
console.log(custdata);
}
});
输出如下
{ '-L84iSPyr9bPvnJZ6BgV':
{
createdAt: '2018-03-20T23:25:35.212Z',
partnerEmail: 'beard@yahoo.com',
partnerFirstName: 'name',
partnerGender: 'male',
partnerLastName: 'title',
partnerPhone: '444-602-4444',
profilePicture: 'assets/profile_icon.png',
uid: 'x99wl8kkmJSENpNdVMXTXCh7amy2' } }
FirstName: undefined
如何获取子数据和密钥?
解决方案
要获取密钥,请尝试以下操作:
var ref = firebase.database().ref("customer").orderByChild("partnerFirstName").equalTo(fname);
ref.once("value").then(function(snapshot) {
snapshot.forEach(function(child){
var key = child.key;
var partnerName=child.val().partnerFirstName;
});
});
在上面,您在 的子项中进行迭代customer
,然后使用var key = child.key;
推荐阅读
- jekyll - Jekyll 中的自定义排序集合
- c++ - 如何使用 QDatastream 通过 QTcpSocket 发送 QSqlQueryModel?
- java - 根据整数输入请求一定数量的输入
- python - 使用 indeces 迭代元组列表理解
- python - 如何一次绘制一个数据并在python中创建动画?
- r-markdown - R markdown并排定位同一表格的两个框架以拆分形式
- sql-server - 根据位置和分隔符拆分字符串
- r - 在 dplyr 中嵌套过滤器
- javascript - 如何使用jQuery在不加载页面的情况下将页面重定向到href链接
- angular - 哪个是保持逻辑角度的最佳位置?