Firebase在我的node.js应用程序中没有正常运行

Firebase not behaving as it should in my node.js app

本文关键字:正常运行 应用程序 js 我的 node Firebase      更新时间:2024-06-04

Firebase在我的node.js应用程序中表现得非常古怪,我不知道为什么。

例如,如果我有一个看起来像这样的变量:

var AllItems= {"itemList":[{"id":1,"name":....}

我可以记录它并让它正确地吐出所有内容,但如果我尝试通过内部数组获取它,就像这样。

var itemList = AllItems[itemList]

返回undefined

如果我试着在这样的循环中一次吐出每一个:

for(i in AllItems){
console.log('i: ',i)
}

它吐出这样的东西:

i:  0
i:  1
i:  2
i:  3

一直到i: 7581,我只有13个条目,假设它记录在那里的索引号,但不是,它应该只输出一个itemList,其中上面的[{"id":1,"name":....将是它的值。

我的火球模块是

  var Firebase = require("firebase");
   var FirebaseTokenGenerator = require("firebase-token-generator");

我想您的问题是不了解如何正确访问AllItem对象。

访问一个项目列表

在您的问题中,您尝试以AllItems[itemList]的方式访问您的项目列表。其中,itemList被认为是一个变量,即undefined。并且AllItems[undefined]是未定义的。

以下是访问它的两种方法:

var itemList = allItems['itemList'];
var itemList = allItems.itemList;

项目列表上的循环

我不知道你是如何到达i: 7581的,但我就是这样做的:

for(var key in allItems) {
  console.log(allItems[key]); 
}

这会记录allItems中的每个itemList。

代码段

我把刚才解释的每一件事都做了一个小片段。

var allItems = {
  "itemList": [{
    "id": 1,
    "name": "item1"
  }, {
    "id": 2,
    "name": "item2"
  }, {
    "id": 2,
    "name": "item2"
  }]
};
// Log itemList (2 ways)
console.log(allItems['itemList']);
console.log(allItems.itemList);
var itemList = allItems.itemList;
// Log every item in itemList
itemList.forEach(function (item) {
  console.log(item);
});
// Log every itemList in allItems
for(var key in allItems) {
  console.log(allItems[key]); 
}