2016-09-06 4 views
0

を与えます。その出力はまた、私はパス分野での問い合わせされていないそれらのオブジェクトが含まれている奇妙なことだ:Firebase startAtクエリは、私は次のクエリを実行すると、予期しない結果に

[ 
    { 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/Test Sub Folder/.Test Sub Folder", 
     "name": "Test Sub Folder", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/", 
     "timestamp": 1473150053359, 
     "type": "dir", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQy_TcuUb3FsQz-CEyY", 
     "$priority": null 
    }, 
    { 
     "extension": "png", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/download.png", 
     "mimeType": "image/png", 
     "name": "download.png", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/", 
     "size": 124631, 
     "timestamp": 1473150091860, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQy_c1SLjHjTHCS1Mox", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/SampleImage.jpg", 
     "mimeType": "image/jpeg", 
     "name": "SampleImage.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/", 
     "size": 62678, 
     "timestamp": 1473150091920, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQy_c1WiRELh2GiZoFm", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/goodtimes.jpg", 
     "mimeType": "image/jpeg", 
     "name": "goodtimes.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/", 
     "size": 128982, 
     "timestamp": 1473150091920, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQy_c1_fNhcg3RKXkTj", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/Test Sub Folder/antibiotics2515.jpg", 
     "mimeType": "image/jpeg", 
     "name": "antibiotics2515.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/Test Sub Folder/", 
     "size": 430885, 
     "timestamp": 1473150091921, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQy_c1bzYINWTYiyFkC", 
     "$priority": null 
    }, 
    { 

     "extension": "png", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/download.png", 
     "mimeType": "image/png", 
     "name": "download.png", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/", 
     "size": 124631, 
     "timestamp": 1473149727313, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQyZDwJIbSExhaln5l-", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/SampleImage.jpg", 
     "mimeType": "image/jpeg", 
     "name": "SampleImage.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/", 
     "size": 62678, 
     "timestamp": 1473149727363, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQyZDwLBEIBKDx6Glq2", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/goodtimes.jpg", 
     "mimeType": "image/jpeg", 
     "name": "goodtimes.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/", 
     "size": 128982, 
     "timestamp": 1473149728493, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQyZDwNTejmqwN6X7ZR", 
     "$priority": null 
    }, 
    { 

     "name": "Test Sub Folder", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/", 
     "timestamp": 1473149760565, 
     "type": "dir", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQyZLKsDkxlTJHDDwDX", 
     "$priority": null 
    }, 
    { 

     "extension": "jpg", 
     "fullPath": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/Test Sub Folder/antibiotics2515.jpg", 
     "mimeType": "image/jpeg", 
     "name": "antibiotics2515.jpg", 
     "path": "54a8924f8c417b2a281f4e3a4c639785/Test Folder/Test Sub Folder/", 
     "size": 430885, 
     "timestamp": 1473149889432, 
     "type": "image", 
     "uid": "ItvFuIIVriaHPPzeMgggwPqSlmq1", 
     "$id": "-KQyZqbRe3V1BBWImBxq", 
     "$priority": null 
    } 
] 

出力もpathは「54a8924f8c417b2a281f4e3a4c639785/Test Folder/」である他の結果が含まれるが、私は「54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/」で始まるpathについて照会しました

答えて

3

Firebaseのクエリは、文字列をソート/フィルタリングするときに辞書順を使用します。その結果、Test Folder/は、/(space)よりも大きいため、実際にはTest Folder 2/より大きいことを意味します。

あなたがしなければならないことは、endAt句でクエリを制限することです。高いUnicodeコードポイントを使用すると、プレフィックスが同じであれば、任意のテキストを許可する必要があります。

.orderByChild('path') 
.startAt('54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/') 
.endAt('54a8924f8c417b2a281f4e3a4c639785/Test Folder 2/\uf8ff') 

古いFirebaseドキュメントはレンジクエリの下にそのhereのための素晴らしい例があったが、過渡期に消えてしまったようです。

+0

@vzsgがありがとう、完璧に機能しました。 –

関連する問題