当确实存在另一个同级时,Firebase查询可以返回空同级
当对查询应用限制时,查询中第一个找到的元素将具有空的前一个同级。即使它确实有一个兄弟,但它只是没有在查询中获取当确实存在另一个同级时,Firebase查询可以返回空同级,firebase,Firebase,当对查询应用限制时,查询中第一个找到的元素将具有空的前一个同级。即使它确实有一个兄弟,但它只是没有在查询中获取 FQuery* messageListQuery = [m_firebaseRef queryLimitedToNumberOfChildren:2]; [messageListQuery observeEventType:FEventTypeChildAdded andPreviousSiblingNameWithBlock:^(FDataSnapshot *snapshot, N
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
-J1JTWoAw5IiUpzkOV4l says Test at the beginning
-J1JTkEzsdxHGMBEk5eD says Test 2 after -J1JTWoAw5IiUpzkOV4l
-J1JW0vpWBZema9QKUcB says Test 3 after -J1JTkEzsdxHGMBEk5eD
当显示所有消息时,可以清楚地看到测试2是以前的同级:
-J1JTkEzsdxHGMBEk5eD says Test 2 at the beginning
-J1JW0vpWBZema9QKUcB says Test 3 after -J1JTkEzsdxHGMBEk5eD
-J1JTWoAw5IiUpzkOV4l says Test at the beginning
-J1JTkEzsdxHGMBEk5eD says Test 2 after -J1JTWoAw5IiUpzkOV4l
-J1JW0vpWBZema9QKUcB says Test 3 after -J1JTkEzsdxHGMBEk5eD
我不确定这是一个bug还是由Firebase设计的。这似乎有点误导,因为人们可能想通过查看prevNodeName参数来了解是否有更多节点。这是出于设计。对附加了查询或限制的Firebase引用执行的所有操作将仅在该特定查询中操作。如果您想知道之前或之后是否有更多元素(例如分页),最好在创建查询的一个级别上跟踪“页面”。感谢您的澄清。