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() 
} 

때로는이 기능이 작동합니다. 특히 데이터베이스 내 기존 객체를 편집하거나 특정 객체에 요소를 추가 할 때 파이어베이스를 저장하지 않는 경우가 있습니다. 오류나 무언가를 던지지 않기 때문에 정말 실망 스럽습니다. 변경하고 싶은 경로를 삭제하고 새로운 정보로 다시 저장하려고했습니다. 또한 각 컨트롤러에서 데이터베이스에 대한 로컬 참조를 시도했지만 안된다 ... 아무도 내가이 작업을 수행 할 수있는 다른 방법을 알고 있습니까?

또한. 데이터베이스와 앱 사이의 연결이 잘된 것 같습니다. 이제는 많은 종을 저장해야합니다. 문제는 종에서 정보를 편집하거나 이미지를 가져 오기 위해 URL을 추가하려는 경우입니다.

답변

0

전체 데이터베이스를 범위에 바인딩하는 것이 좋지 않다고 생각합니다. 규모를 조정하는 것은 극히 어렵습니다.

ref를 요청하여 $firebaseObject (으)로 보내면 이벤트를 변경하기 위해 등록되며 전체 데이터베이스의 동기화가 시작될 수 있습니다. 당신이 $scopedatabase 재산하지만이 example_function 당신이 element 속성에 값을 적용하고있는 데이터베이스 참조를 바인딩하는 것처럼 당신이 겪고있는 문제에 대해서는

, 그것은 보인다. 어쩌면 당신이 찾고있는 문제는 다음과 같습니다 :

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