当真正有另一个兄弟时,Firebase查询可以返回null兄弟

时间:2013-08-19 03:13:40

标签: firebase

当对查询应用限制时,查询中的第一个找到的元素将具有空的上一个兄弟。虽然它确实有一个兄弟,但它还没有在查询中获取。

FQuery* messageListQuery = [m_firebaseRef queryLimitedToNumberOfChildren:2];

[messageListQuery observeEventType:FEventTypeChildAdded andPreviousSiblingNameWithBlock:^(FDataSnapshot *snapshot, NSString *prevNodeName) {
    NSString     *nodeName = snapshot.name;
    NSDictionary *msgData = snapshot.value;
    NSString     *where = (prevNodeName == nil) ? @"at the beginning" : [NSString stringWithFormat:@"after %@", prevNodeName];
    NSLog(@"%@ says %@ %@", nodeName, msgData[@"text"], where);
}];

我在给定的FirebaseRef上有3条消息。但是,它显示测试2消息没有先前的兄弟:

-J1JTkEzsdxHGMBEk5eD says Test 2 at the beginning
-J1JW0vpWBZema9QKUcB says Test 3 after -J1JTkEzsdxHGMBEk5eD

当显示所有消息时,可以清楚地看到测试2作为前一个兄弟:

-J1JTWoAw5IiUpzkOV4l says Test at the beginning
-J1JTkEzsdxHGMBEk5eD says Test 2 after -J1JTWoAw5IiUpzkOV4l
-J1JW0vpWBZema9QKUcB says Test 3 after -J1JTkEzsdxHGMBEk5eD

我不确定这是一个错误还是由Firebase设计的。这看起来有点误导,因为人们想通过查看prevNodeName参数来了解是否有更多节点。

0 个答案:

没有答案