我試圖使用Vaadin Expense Manager Demo來加載存儲在Firebase中的數據。具體而言,我試圖用<firebase-query>
和</app-indexeddb-mirror>
的組合替換<vaadin-pouchdb>
元素。
<firebase-query id="query"
log
app-name="my-firebase"
path="[[user.uid]]"
data="{{expenses}}">
</firebase-query>
當我嘗試加載網頁,我希望看到我的網格填充測試數據;但是,我得到以下錯誤。
的console.logfirebase.js:284 Uncaught TypeError: Cannot create property '$key' on string 'foo'
firebase.js:284 Uncaught TypeError: Cannot create property '$key' on string 'new'
firebase.js:284 Uncaught TypeError: Cannot create property '$key' on number '123'
的{{expenses}}
我希望通過<firebase-query>
交付給應用程序的值如下:
expenses = [
{
total : 123 ,
status : 'new' ,
merchant : 'foo' ,
}
]
什麼可以創建這個錯誤?爲什麼有一個屬性'$key'
,試圖創建?等一下。難道這是因爲它們存儲在我的Firebase中沒有與費用關聯的密鑰?
編輯:
下面是數據的模樣在火力地堡:
my-firebase
|
- my-userid-abc-123
|- merchant: "foo"
|- status: "new"
|- total: 123
你可以顯示你的數據庫中的實際數據是什麼樣子嗎?你用數字鍵存儲東西嗎? 'firebase-query'被設計用來處理字符串鍵入的對象數據。 –
@MichaelBleigh:是的。你的直覺是正確的。我沒有存儲數據上的密鑰。 *請參閱上面反映存儲數據結構的編輯。*我如何填充我的網格?如果我需要返回並用鑰匙存儲數據,請告訴我。從數據結構的角度來看,這聽起來可能是最好的嗎? – Mowzer
它看起來像你可能想'firebase文檔'這將只加載整個文檔的路徑。我也強烈建議用你的數據構建你的數據。 '/ users/my-userid-123',而不是直接將用戶放在根目錄下。然後你可以做''或者讓所有用戶'' –