2017-08-15 223 views
0

我有一個火力地堡DB如下基於時間戳:更新在火力地堡

{ 
    "page_id": { 
    "user_1": { 
     "messages": { 
     "1502774604": { 
      "timestamp": 1502774604, 
      "user": false, 
      "content": "Hi" 
     }, 
     "1502774613": { 
      "timestamp": 1502774613, 
      "user": false, 
      "content": "Hello" 
     }, 
     "1502791814": { 
      "timestamp": 1502791814, 
      "user": false, 
      "content": "How are you" 
     } 
     } 
    } 
    } 
} 

我想設置在時間戳小於「1502791814」全部「用戶」字段爲「真」。 Firebase有可能嗎?

爲同一的SQL將會像

UPDATE消息設置用戶= TRUE其中,時間戳< = 1502791814

PS:我使用的是JavaScript客戶端

回答

3

請考慮做以下事情:

firebase.database().ref('page_id/user1/messages').orderByChild('timestamp').endAt(1502791814) 
    .on('value',function(snap){ 
    //Now snap is an array of nodes that you wanted 
    //Each node can be reached by using the following 
    snap.forEach(function(eachSnap){ 
    //Complete here for update stuff 

    }); 

}); 

希望工程!

+0

那麼它循環通過每一個更新? –

+0

我把更新部分留給你了。您可以使用set方法或更新方法。但是,更新方法會更有效率。看看這個:https://firebase.google.com/docs/database/web/read-and-write#updating_or_deleting_data –

+0

好的。將檢查。如果你使用nodejs的話,語法也幾乎相同? –