星期一, 3月 09, 2020

筆記:Queries, Part 1: Common SQL Queries Converted for Firebase

依照 Queries, Part 1: Common SQL Queries Converted for Firebase 來練習
  • By ID ,路徑指定好就可以了 firebase.database().ref(‘/messages/’ + messageID).once(‘value’, function(snap) { … });
  • WHERE, 除了路徑之外,還要指定 orderByKey() 或 orderByChild(),然後再用 startAt/endAt
    • orderByKey 是依照 key 的值:firebase.database().ref(‘/messages’).orderByKey().startAt(‘user001’).endAt(‘user010’).once(‘value’, function(snap) { … });
    • orderByChild 是依照子節點的值:firebase.database().ref(‘/messages’).orderByChild(’email’).startAt(‘user001@example.com’).endAt(‘user010@example.com’).once(‘value’, function(snap) {…});
    • 用 orderByChild 時,要在規則裡加上 .indexOn ,否則會有警告,警告的大意是說加indexOn 後,效能會比較好。
  • LIMIT,加 limitToFirst(10) 或 limitToLast(10)
    • 可以跟前面提到的 startAt / endAt 結合:firebase.database().ref(‘/messages’).orderByChild(’email’).startAt(‘user001@example.com‘).endAt(‘user010@example.com‘).limitToFirst(10).once(‘value’, function(snap) {…});
    • limitToLast 就是指定後面幾筆

沒有留言: