0

Я пытаюсь восстановить мои задачи из базы данных firebase, но на моем представлении данных нет. У меня нет ошибок на консоли.Извлечь базу данных данных в список

Я прихожу, «сохраняю данные» в firebase.

Мой код:

var app = angular.module('starter', ['ionic', 'firebase']); 
 

 
var fb = null; 
 

 
app.run(function($ionicPlatform) { 
 
    $ionicPlatform.ready(function() { 
 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
 
     cordova.plugins.Keyboard.disableScroll(true); 
 
    } 
 
    if(window.StatusBar) { 
 
     StatusBar.styleDefault(); 
 
    } 
 

 
    var config = { 
 
     apiKey: "...", 
 
     authDomain: "...", 
 
     databaseURL: "...", 
 
     storageBucket: "...", 
 
     messagingSenderId: "..." 
 

 
    firebase.initializeApp(config); 
 

 
    }); 
 
}); 
 
    
 
app.controller('TodoCtrl', function($firebaseObject,$scope, $ionicPopup){ 
 
    $scope.list = function(){ 
 

 
    var user = firebase.auth().currentUser; 
 

 
    if(user != null){ 
 
     alert('user ' + user.uid + ' exists!'); 
 

 
     var ref = firebase.database().ref('/users/').child(user.uid); 
 
     var syncObject = $firebaseObject(ref); 
 
     syncObject.$bindTo($scope, "data"); 
 

 
    }else{ 
 
     alert('error'); 
 
    } 
 
    } 
 

 

 
    $scope.create = function() { 
 
    var user = firebase.auth().currentUser; 
 

 
    $ionicPopup.prompt({ 
 
     title: 'Enter a new TODO item', 
 
     inputType: 'text' 
 
    }) 
 
    .then(function(result) { 
 
     if(result !== "") { 
 
     firebase.database().ref("https://stackoverflow.com/users/").child(user.uid).push({ 
 
      todos: result 
 
     }); 
 

 
     } 
 
    }); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ion-view view-title="Todo" ng-init="list()"> 
 
    <ion-nav-buttons side="right"> 
 
     <button class="right button-icon icon ion-plus" ng-click="create()" ></button> 
 
    </ion-nav-buttons> 
 
    <ion-content> 
 
     <div class="list"> 
 
     <div ng-repeat="todo in data.todos" class="item"> 
 
      {{todo.todos}} 
 
     </div> 
 
    </ion-content> 
 
</ion-view>

My Firebase database

Заранее спасибо за вашу помощь.

ответ

0

Почему бы не выполнить функцию списка после объявления и все будет работать нормально.

var app = angular.module('starter', ['ionic', 'firebase']); 
 

 
var fb = null; 
 

 
app.run(function($ionicPlatform) { 
 
    $ionicPlatform.ready(function() { 
 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
 
     cordova.plugins.Keyboard.disableScroll(true); 
 
    } 
 
    if(window.StatusBar) { 
 
     StatusBar.styleDefault(); 
 
    } 
 

 
    var config = { 
 
     apiKey: "...", 
 
     authDomain: "...", 
 
     databaseURL: "...", 
 
     storageBucket: "...", 
 
     messagingSenderId: "..." 
 

 
    firebase.initializeApp(config); 
 

 
    }); 
 
}); 
 
    
 
app.controller('TodoCtrl', function($firebaseObject,$scope, $ionicPopup){ 
 
    var list = function(){ 
 

 
    var user = firebase.auth().currentUser; 
 

 
    if(user != null){ 
 
     alert('user ' + user.uid + ' exists!'); 
 

 
     var ref = firebase.database().ref('/users/').child(user.uid); 
 
     var syncObject = $firebaseObject(ref); 
 
     syncObject.$bindTo($scope, "data"); 
 

 
    }else{ 
 
     alert('error'); 
 
    } 
 
    } 
 

 
    // execute the function at this point. 
 
    list(); 
 

 
    $scope.create = function() { 
 
    var user = firebase.auth().currentUser; 
 

 
    $ionicPopup.prompt({ 
 
     title: 'Enter a new TODO item', 
 
     inputType: 'text' 
 
    }) 
 
    .then(function(result) { 
 
     if(result !== "") { 
 
     firebase.database().ref("https://stackoverflow.com/users/").child(user.uid).push({ 
 
      todos: result 
 
     }); 
 

 
     } 
 
    }); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- you are fine to make minor changes here--> 
 
<ion-view view-title="Todo" ng-controller="TodoCtrl"> 
 
    <ion-nav-buttons side="right"> 
 
     <button class="right button-icon icon ion-plus" ng-click="create()" ></button> 
 
    </ion-nav-buttons> 
 
    <ion-content> 
 
     <div class="list"> 
 
     <div ng-repeat="todo in data.todos" class="item"> 
 
      {{todo.todos}} 
 
     </div> 
 
    </ion-content> 
 
</ion-view>

+0

Привет Виктор! Я пытаюсь ваши изменения, но они не работают ... –

+0

Up! Вы не можете мне помочь? –

+0

Где вы можете исправить проблему? –

 Смежные вопросы

  • Нет связанных вопросов^_^