2017-02-18 32 views
0

我試圖在firebase實時數據庫中存儲一些特定信息。我的數據庫結構如下:指定firebase實時數據庫請求的條件和限制

{ 
    "contacts" : { 
    "-KdD1f0ecmVXHZ3H3abZ" : { 
     "email" : "[email protected]", 
     "first_name" : "John", 
     "last_name" : "Smith", 
     "organization_id" : 1 
    }, 
    "-KdG4iHEYjInv7ljBhgG" : { 
     "email" : "[email protected]", 
     "first_name" : "Max1", 
     "last_name" : "Rosse13131313l", 
     "organization_id" : 1 
    }, 
    "-KdGAZ8Ws6weXWo0essF" : { 
     "email" : "[email protected]", 
     "first_name" : "Max1", 
     "last_name" : "Rosse13131313l", 
     "organization_id" : 1 
    } 
    } 
} 

我需要能夠以這樣的SQL實例指定條件:

SELECT * FROM contacts WHERE organization_id = :id LIMIT :start, :end 

是有辦法,在數據庫中使用Ruby做的,或者至少它們的REST API?

+0

你還嘗試過什麼嗎? https://firebase.google.com/docs/database/rest/retrieve-data#section-rest-filtering –

回答

0

該解決方案可以分爲兩個步驟。

步驟1)如果尚未完成,則必須更新Firebase數據庫中的規則。

{ 
    "rules": { 
    "read": "auth !=null", 
    "write": "auth !null", 
    "REPLACE_WITH_ROOT_NODE_NAME": { 
     "contacts": { 
      "indexOn": ["organization_id"] 
     } 
    } 
    } 
} 

步驟2)向取從火力數據庫數據。其餘的API請求應該是這樣的

https://app-name.firebaseio.com/REPLACE_WITH_ROOT_NODE_NAME/contacts.json?auth=REPLACE_WITH_DATABASE_PASSWORD&orderBy="organization_id"&equalTo="REPLACE_WITH_ORGANIZATION_ID"&LimitToFirst=N