Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 关于snapshot.value的Firebase排序说明_Ios_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Ios 关于snapshot.value的Firebase排序说明

Ios 关于snapshot.value的Firebase排序说明,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,希望有人能帮我理解Firebase快照和排序。为什么如果在FirebaseDBRef上查询OrderedByChild,snapshot.value会返回Firebase数据库上显示的值(使用浏览器),但是如果对管理单元snapshot.children执行,则值会显示为排序。只是想澄清为什么会发生这种情况 让我举例说明 let dinoRef = rootRef.child("dino") let query = dinoRef.queryOrderedByChild("dimensions/

希望有人能帮我理解Firebase快照和排序。为什么如果在FirebaseDBRef上查询OrderedByChild,snapshot.value会返回Firebase数据库上显示的值(使用浏览器),但是如果对管理单元snapshot.children执行
,则值会显示为排序。只是想澄清为什么会发生这种情况

让我举例说明

let dinoRef = rootRef.child("dino")
let query = dinoRef.queryOrderedByChild("dimensions/height")
query.observeSingleEventOfType(.Value, withBlock: { snapshot in
        // This prints to the console unsorted
        print(snapshot.value)

        // This prints to console sorted
        for snap in snapshot.children {
            print(snap)
        }
    })

谢谢。

您必须尝试使用升序和降序选项按孩子排序。这将澄清你的疑问

A
FIRDataSnapshot
包含有关返回数据的键、与这些键关联的值以及键的顺序的信息。调用快照时,枚举器将按您请求的顺序返回子项


调用快照时,它必须将所有信息转换为
NSDictionary
。字典没有关于数据顺序的固有信息,因此此时结果的顺序将丢失。

您好,没有升序或降序选项。根据Firebase文档,排序已为升序,且仅为升序。---。即使有asc或desc选项,您的评论也不能澄清我的问题。如果打印snapshot.value,则结果为未排序;如果打印每个snapshot.children,则结果为排序。