Реализация ионного кода Firebase

#ionic-framework #firebase #firebase-realtime-database

#ионный фреймворк #firebase #firebase-база данных в реальном времени

Вопрос:

Я действительно застрял в этом коде и не могу найти решение. Я создал ионное приложение с подключением к Firebase, и моя аутентификация работает нормально; могу передавать данные, но я не вижу, как мне правильно передать следующий код. Структура формы:

Структура формы

Мой код для передачи данных, служба:

 factory('Products', function($firebaseArray) {
  var productsRef = new Firebase("https://kidsmoments-19623.firebaseio.com/momentos");
    var products =$firebaseArray(productsRef.child('products'));
     var Products = {
         saveProduct: function (product, image) {
                 var newProduct = {
                     name: product.name
                     , tagline: product.tagline
                     , description: product.description
                     , price: product.price
                     , image: image
                 };
                 return products.add(newProduct).then(function () {  console.log('added');
            })
    }
        };
return Products;

         }
)
  

Комментарии:

1. Извините, ошибка, которую я получаю: VM23799 ionic.bundle.js:26771 Ошибка: [$injector: unpr] Неизвестный поставщик: ProductsProvider <- Products <- settingsController

Ответ №1:

Похоже, вы забыли добавить «Продукты» в качестве зависимости в контроллере, над которым вы работали.

Также вам следует попробовать трехстороннюю привязку Firebase:

 .factory("Products", ["$firebaseObject", "$rootScope",
    function($firebaseObject, $rootScope) {
        return function() {

            // create a reference to the database where our Products is.
            var ref = ($rootScope.ref.child("Products"))

            return $firebaseObject(reg);
        }
    }
])
  

И от контроллера:

 Products().$bindTo($scope, "products");
  

Теперь любое изменение, которое вы вносите в $scope.products, будет синхронизировано с Firebase

Комментарии:

1. Ну, у меня есть в моих продуктах контроллера: последний, который я добавил …<br>’Use Strict’; angular.module(‘App’).controller(‘settingsController’, функция ($scope, $state,$cordovaOauth, $localStorage, $log, $location,$http,$ionicPopup, $ firebaseObject, Auth, FURL, Products) { var ref = firebase.database().ref

2. Пожалуйста, пишите код с правильным отступом, так его легче читать. Вы все еще получаете ту же ошибку?

3. Хорошо, я думаю, это должно быть связано с конфигурацией firebase. В одной руке у меня есть firebase.initializeApp(FURL); var ref = firebase.database().ref(); var auth = $FirebaseAuth(); а в другой руке мне нужно создать de product.js с конфигурацией firebase: var productsRef = new Firebase(» kidsmoments-19623.firebaseio.com/momentos » );var products =$firebaseArray(productsRef.child(‘products’));, извините, я не знаю, как разбивать строки. Спасибо

4. Используйте четыре пробела для отступа кода, я не могу понять ваш комментарий.. Пожалуйста, постарайтесь быть более понятными.

5. Привет, Йосси, я действительно запутался. Не могли бы вы, пожалуйста, взглянуть на код здесь? github.com/cookyourweb/firebase-ionic-auth-data.git Спасибо за ваше время

Ответ №2:

Я полагаю, что у вас есть сущность products, поэтому сделайте ссылку на эту сущность и отправьте свои данные следующим образом:

 var productsRef = new Firebase("https://kidsmoments-19623.firebaseio.com/momentos/products");

productsRef.push({
  name: product.name,
  tagline: product.tagline,
  description: product.description,
  price: product.price,
  image: image
})
  

Обновление об ошибке, которую вы получаете, пожалуйста, убедитесь, что вы ввели поставщика в свой контроллер настроек