Javascript 使用JS访问节点中的Firebase数据
因此,我从Firebase返回了一个对象,如下所示:Javascript 使用JS访问节点中的Firebase数据,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,因此,我从Firebase返回了一个对象,如下所示: {key:{name:“test”,email:“test”,id:“test”} 如何从该对象中获取id 如果我做了returnItem我得到了那个对象,所以我试着做returnItem[0],但它不是数组,我试过(object.keys(tempSnap),但那只是给了我键,而不是里面的对象 这是我当前的代码: export function sendInvitation(email) { firebaseRef.database
{key:{name:“test”,email:“test”,id:“test”}
如何从该对象中获取id
如果我做了returnItem
我得到了那个对象,所以我试着做returnItem[0]
,但它不是数组,我试过(object.keys(tempSnap)
,但那只是给了我键,而不是里面的对象
这是我当前的代码:
export function sendInvitation(email) {
firebaseRef.database().ref().child('users').orderByChild('email').equalTo(email).on("value", function(snapshot) {
let tempSnap = snapshot.val();
if(tempSnap != null) {
console.log(tempSnap);
}
});
return dispatch => firebaseRef.database().ref(`${userID}/invites`).push("This is a test Message!");
}
这就是它的输出:
帮助会很棒:D如果您已经知道
id
并且它是一个文本,那么这就是returnItem.id
的问题
如果您已经知道
id
并且它是一个变量,那么它就是returnItem[id]
如果您不知道这些键,并希望打印所有键及其值,则:
Object.keys(returnItem).forEach(function(key) {
console.log(key, returnItem[key]);
});
更新
您的新代码显示了问题所在。当您对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。您的回调需要处理这样一个事实,即它通过在他使用snapshot.forEach()生成了以下结果:
如果您已经知道
id
并且它是一个文本,那么这就是returnItem.id
的问题
如果您已经知道
id
并且它是一个变量,那么它就是returnItem[id]
如果您不知道这些键,并希望打印所有键及其值,则:
Object.keys(returnItem).forEach(function(key) {
console.log(key, returnItem[key]);
});
更新
您的新代码显示了问题所在。当您对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。您的回调需要处理这样一个事实,即它通过在他使用snapshot.forEach()生成了以下结果:
试试这个:
firebaseRef.database().ref().child('users').orderByChild('email').equalTo(email).on("value", function(snapshot) {
snapshot.forEach(function(child) {
let keys=child.key;
let ids=child.val().id;
)};
)};
你有:
users
keyid
email:email
name:yourname
id: test
试试这个:
firebaseRef.database().ref().child('users').orderByChild('email').equalTo(email).on("value", function(snapshot) {
snapshot.forEach(function(child) {
let keys=child.key;
let ids=child.val().id;
)};
)};
你有:
users
keyid
email:email
name:yourname
id: test
所以密钥是自动生成的,我不知道。我尝试了您建议的方法,但似乎不起作用。returnedItem[id]抛出一个错误,表示它不知道id是什么(我正在尝试获取它的值,所以我不知道)这个错误听起来好像id`不是一个文字。因为你不知道它的值,你可能不得不像我上次给出的代码片段那样循环。但是,你在问题中给出的有限信息很难更好地帮助你。要获得更好的帮助,请确保你发布了你正在收听的JSON(作为文本,没有屏幕截图),从代码中附加侦听器的方式,以及侦听器中的实际代码。所有这些都可能会影响获取值所需的操作。我用更多信息更新了问题,也许这会有助于解决它!这正是我需要的,谢谢。那么我到底在看什么?抱歉,我正在尝试学习,所以关键是自动生成ted和我都不知道。我尝试了你的建议,但似乎不起作用。returnedItem[id]抛出一个错误,表示它不知道id是什么(我正在尝试获取它的值,所以我不知道)这个错误听起来好像id`不是一个文字。因为你不知道它的值,你可能不得不像我上次给出的代码片段那样循环。但是,你在问题中给出的有限信息很难更好地帮助你。要获得更好的帮助,请确保你发布了你正在收听的JSON(作为文本,没有屏幕截图),从代码中附加侦听器的方式,以及侦听器中的实际代码。所有这些都可能会影响您获取值所需的操作。我用更多信息更新了问题,也许这会有助于解决问题!这正是我需要的,谢谢。那么,我到底在看什么?抱歉,我正在尝试了解您的问题包括相关代码。希望这有助于澄清问题请您的问题包括相关代码。希望这有助于澄清仅返回对象密钥的问题。我需要立即返回对象密钥的itcheck@EladKarniSo内的id。我需要立即返回对象密钥的itcheck@EladKarni内的id