0

我已經使用了Firebase幾個月了,並且在使用angularjs和anfularfire之前,我已經很好,在解釋問題之前,讓我給你一個快速背景:我目前使用不同的控制器爲用戶提供註冊植物種類並將其用作項目以創建交互式花園的應用程序。爲了節省從任何控制器的數據庫,我存儲在基準到$範圍使用angularjs保存firebase數據庫的問題

var rootRef = firebase.database().ref(); 
$scope.database = $firebaseObject(rootRef) 

所以當我要做出改變或添加一個對象,我不喜歡這樣寫道:

$scope.example_function = function(i){//supposing 'i' is a string 
    $scope.element[e] = i //supposing that 'e' contains a string 
    $scope.database.$save() 
} 

有時候這會起作用,有時候它不會保存firebase,尤其是在編輯數據庫中的現有對象或將元素添加到特定對象時。這真的很令人沮喪,因爲它不會拋出錯誤或什麼,我甚至嘗試刪除我想改變的路徑,然後再將它與新信息一起存儲。此外,我嘗試與每個控制器中的數據庫的本地引用,但沒有...任何人都知道我還能如何做這項工作?

另外。我很確定數據庫和應用程序之間的連接是好的,我現在需要存儲大量的物種,問題是當我想編輯物種的信息或添加一個URL來獲取圖像。

回答

0

我認爲將整個數據庫綁定到範圍並不是一個好主意。這將是非常難以擴展。

請記住,當您請求參考並將其發送到$firebaseObject時,它將註冊以更改事件,這將開始同步整個數據庫,這可能會很大。

對於您所遇到的問題,它看起來像要綁定數據庫引用的$scope一個database財產,但在你的example_function你申請值的element財產。所以也許你正在尋找的修復是這樣的:

function example_function(i) { 
    $scope.database.element = i; 
    $scope.database.$save(); 
}