這不是什麼大不了的事,但我想它扔在那裏 - 如果你有100個項目增量的優先級,你有這樣的名單:只是我,還是Firebase的默認LIMIT()行爲向後工作?
item#1: { .priority: 1 }
...
item#100: { .priority: 100 }
的第一項是#1優先1,最後產品#100優先100現在,如果你限制()列表中3項,像這樣:
firebaseRef.limit(3).once(...)
而不是返回1-3項,您將返回項目97 -100。大多數人期望嗎?這與限制通常在其他環境中的工作方式相反。例如,在SQL中,您從集合的開始處開始並在達到限制時停止。
現在這不是技術上的限制或任何東西(我相信),因爲我們實際上可以得到1-3的記錄很容易地通過第一個項目使用STARTAT():
firebaseRef.startAt(1).limit(3).once(...)
事實上,當LIMIT()在沒有STARTAT()或者ENDAT()的情況下使用時,它的行爲就像你用最後一項指定ENDAT()一樣。例如,這些產生相同的結果:
firebaseRef.limit(3).once(...)
firebaseRef.endAt(100).limit(3).once(...)
不它看起來像默認的行爲應該是從第一位置模仿STARTAT(),而不是ENDAT()從最後一個位置,如果只LIMIT( )是否被指定?