Firebase查询返回奇怪的结果

时间:2016-03-04 20:27:58

标签: ios objective-c firebase

我在我的应用中使用了Firebase,并且我有一条路径,其中包含带有“linked_timestamp'”的子节点。值kFirebaseServerValueTimestamp。我使用此代码仅返回不超过24小时的商品:

Firebase *usersRef = [[Firebase alloc] initWithUrl:@"https://<MY-APP>.firebaseio.com/users"];
Firebase *itemsRef = [usersRef childByAppendingPath:[NSString stringWithFormat:@"/%@/items/", userId]];

double currentTimeSince1970 = (double)[[NSDate date] timeIntervalSince1970];
double epochTime = currentTimeSince1970 * 1000;
double startingAtTimestamp = epochTime - (24 * 3600000);
NSNumber *startingAtTimestampNumber = [[NSNumber alloc] initWithDouble:startingAtTimestamp];

FQuery *itemsQuery = [[itemsRef queryOrderedByChild:@"linked_timestamp"] queryStartingAtValue:startingAtTimestampNumber];
[itemsQuery observeSingleEventOfType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
    // Downloaded
}];

但由于某种原因,返回值太小的子节点。

enter image description here

有关原因的任何想法?

更新

Firebase结构:

{
"items" : {
"-KBOcj7jlWh4wg8WWhyc" : {
    // information
    },
"-KBOcxL4f2-Az4meOLsW" : {
    // information
    }
},
"users" : {
"1117555594922215" : {
  "first_name" : "First name",
  "last_name" : "Last name",
  "items" : {
    "-KBOcj7jlWh4wg8WWhyc" : {
      "linked_timestamp" : "54354"
    },
    "-KBOcxL4f2-Az4meOLsW" : {
      "linked_timestamp" : 1457119545959
    }
  },
  "register_date" : "04-03-2016 18:02"
        }
    }
}

1 个答案:

答案 0 :(得分:0)

答案是您的54354存储为字符串而不是数字。

我犯了很多次错误。

如果您进入Firebase信息中心,则可以点击54354字段,它将在数字“54354”周围显示数据。删除它们,您的代码将起作用。