2017-09-13 26 views
0

閱讀Firebase文檔後,我瞭解到NoSql中的邏輯結構與SQlite完全不同。我可以做有序的基本搜索:使用Android上的Firebase進行高級搜索

orderByChild()orderByKey()orderByValue() startAt()endAt()equalTo()過濾。

我正在構建一個類似於聖經的應用程序。該應用程序項目要求有搜索過濾器,如:

  • 「以啓動」:例如:EXCE借給
  • 「含有」:前:前 NT
  • 「所有詞「:例如:耶穌相同
  • 精確搜索:例如:耶穌是一樣的

Firebase實時數據庫功能非常適用於修復打字錯誤或丟失文本,一旦廣播在所有設備上發生變化,這無疑是非常驚人的事情。

考慮到圖像:

See the structure of JSON in firebase

  1. 是否有可能做火力地堡這些搜索過濾器?
  2. 使用Firebase自己的API構建這些過濾器的最佳方式是什麼?
  3. 我是否必須將這些相同的過濾器與脫機數據一起使用?
+0

這是不可能的。我認爲有限的解決方法。 – creativecreatorormaybenot

+0

Firebase實時數據庫沒有您描述的文本搜索。 –

+0

有沒有其他的數據庫,當更改或添加數據時,它會進行廣播,在所有設備上更改?什麼是最好的選擇? –

回答

0

在Firebase中沒有這樣的想法與LIKE查詢等效。你可以創建一個額外的節點是這樣的:

"common_queries": { 
    "jesus": { 
    "0": "awdawdn", 
    "1": "oiefpowmfpowmf" 
    }, 
    "eggcelent":{ 
    "0": "oiefpowmfpowmf" 
    } 
} 

然後你就可以查詢試圖擊中的關鍵,其結果是參考其他節點的密鑰。

還有另外一種選擇至極涉及使用startAt()方法和endAt(),加上最後一個文本搜索的價值,這裏是一個great video

我覺得火力地堡是你的工具區中的一個工具,在這種情況下,是不是最合適的工具。不要用圓鋸鑽孔,只需使用鑽頭。

+1

使用你的提示,它的工作。我能夠通過帶來一本書的所有段落並使用Array來進行查詢。謝謝! –

+0

@OséiasRibeiro太棒了! Wich提示,視頻或「common_queries」節點? – cutiko

+0

paragrafos ----> UHIudiuhiUHRI10 ----> texto:「valor」banco de dados = FirebaseDatabase.getInstance(); reference = database.getReference(「paragrafos」); Consulta de consulta = reference.orderByChild(「id」)。 EqualTo(msgId); –

0

不,這是不可能的。不幸的是,Firebase沒有像您在文章中描述的那樣提供文本搜索機制,並且據我所知,沒有其他數據庫在默認情況下提供類似的內容。

+0

謝謝!有效。 –