2016-08-14 141 views
1

我在firebase中的數據看起來如下所示。Firebase等於無法正常工作

items { 
    item1: { 
     field1: value1 
     field2: value2 
    } 
    item2: { 
     field1: value4 
     field2: value3 
    } 
} 

現在,我想要獲取field2 === value3的所有項目。當我運行以下查詢時,我得到所有項目。爲什麼?

firebase.database().ref().child('items') 
     .orderByChild('field2') 
     .equalTo('value3') 
     .limitToLast(10) 
     .once('value'); 
+1

您是否使用Firebase版本3 API或舊版本2 API?代碼看起來不正確。裁判在哪裏?使用版本3的API,它會像'firebase.database()。ref()。child(...' – cartant

+0

我使用的是最新的。在代碼中,firebase是我的局部變量, .database()。ref()。讓我改變問題的代碼以獲得更好的清晰度 – user43286

+0

你說你會得到'所有物品'。你能得到多少?你能在你的問題中包含收到的物品嗎? – cartant

回答

0

而不是使用的查詢,你可以使用child_added監聽器將返回項目所有子項,然後你可以執行你想要的操作。

firebase.database().ref('items').on('child_added', snap => { 
    if(snap.val().field2 == 'value3') { 
     console.log('Match found in ' + snap.key); //Match found in item2 
    } 
});