我尝试使用优先级密钥订购数据。我只把优先权放在" list"如下图所示。
这是与我的代码类似的示例
[listRef observeEventType:FEventTypeChildAdded andPreviousSiblingNameWithBlock:^(FDataSnapshot *snapshot, NSString *prevName) {
//get listID
NSString* listID = snapshot.name;
//get detail for list
[[detailRef childByAppendingPath:listID] observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
NSString* text = snapshot.value[@"listtext"];
・
・
}];
}];
它正常工作。显示订单列表。
但是在引用下面的用户数据时我遇到了问题。
[listRef observeEventType:FEventTypeChildAdded andPreviousSiblingNameWithBlock:^(FDataSnapshot *snapshot, NSString *prevName) {
//get listID
NSString* listID = snapshot.name;
//get detail for list
[[detailRef childByAppendingPath:listID] observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
NSString* text = snapshot.value[@"listtext"];
NSString* userID = snapshot.value[@"user"];
・
・
//added code
Firebase* userRef = [[self.firebase childByAppendingPath:@"person"] childByAppendingPath:userID];
[userRef observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
avatarImageURL = snapshot.value[@"image"];
username = snapshot.value[@"name"];
・
}];
}];
}];
此代码不按listRef优先级返回有序数据。这似乎是userRef的订单,但它没有优先权。
这是json数据。
"person" : {
"1321312" : {
"uid" : "1321312",
"name" : "testuser",
"image" : "http://test.png"
},
"3243121" : {
"uid" : "3243121",
"name" : "testuser2",
"image" : "http://test.png"
}
"list" : {
"-JOFBZ6YFFdRfBNEe-DV" : {
".value" : true,
".priority" :1.401504809514409E12
},
"-JOFJTOnwADzfZmY0fMl" : {
".value" : true,
".priority" : 1.401506883247231E12
},
我想按照列表的优先顺序订购数据。我定义" list"和"人"节点如下
[listRef setValue:@YES andPriority:ts];
[[[rootRef childByAppendingPath:@"person"] childByAppendingPath:userID] setValue:@{@"uid":userID, @"image":image, @"name":name}];
我不明白为什么数据是根据“#34; person"没有优先权" list"优先级。
任何人都有任何想法??