2017-08-06 92 views
1

我想從Firebase節點獲取單個密鑰,但無法從我現在擁有的代碼中獲取任何密鑰。這裏是我的代碼:使用VueFire從Firebase獲取.key

let app = Firebase.initializeApp(config) 
let db = app.database() 

let bdRef = db.ref() 

export default { 
    name: 'hello', 
    firebase: { 
    businesses: bdRef.orderByChild('.key').equalTo('306') 
    } 
} 

這樣做時,我得到這個錯誤:

validation.js?5c80:234 Uncaught Error: Query.orderByChild failed: First argument was an invalid path = ".key". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`

當我做我的代碼:

businesses: bdRef.orderByChild('title').equalTo('Feather Animation Wood Carving Supplies')

它配備了此陣:

0:Object 
.key:"3021" 
address:"Hello Avenue" 
city:"" 
description:"Wood carving tools and supplies. Please contact us by phone or internet." 
email:"[email protected]" 
employees:"1" 

如何獲得.key屬性?

回答

0

它的非常簡單的答案是,您擁有帶「.key」鍵和「3021」作爲其值的json。但在「.key」中,您已包含「。」。這是指你給空路或無效路徑。

所以,如果你將其命名爲「關鍵」或任何名稱爲「keyid的」將是很酷的,除非你有作爲你的錯誤說:can't contain ".", "#", "$", "[", or "]"

希望這有助於解釋!

0

你嘗試使用這個命令:

businesses['.key'] 
+0

問題不在於訪問名爲'.key'的關鍵,但它傳遞給'orderByChild()'函數 – kuzyn

0

如前所述,您無法查詢的屬性在其名稱的點。從documentation,你需要使用內置的orderByKey()過濾器來代替:

export default { 
    name: 'hello', 
    firebase: { 
    businesses: bdRef.equalTo('306').orderByKey() 
    } 
}