2017-09-06 2 views
0

J'essaie d'insérer des données dans la base de données firebase en utilisant angularjs. J'ai utilisé le système comme la clé et ensuite l'équipement comme l'enfant, mais quand je pousse les données il génère une clé et sous cela il stocke l'équipement. Je veux pour stocker mes données comme ceci:La classe enfant génère automatiquement l'identifiant lors de la transmission de données dans la base de données firebase

System -> Equipment1 
     -> Equipment2 
     -> Equipment3 

System2 -> Equipment1 
     -> Equipment2 
     -> Equipment3 

Voici mon code:

/*global angular*/ 
var app = angular.module('input', ['ngRoute', 'firebase']); 

app.config(['$routeProvider', function ($routeProvider) { 
    'use strict'; 
    $routeProvider.when('/input', { 
     templateUrl: 'input/input.html', 
     controller: 'inputCtrl' 
    }); 
}]); 

app.controller('inputCtrl', ['$scope', '$firebaseObject', function ($scope, $firebaseObject) { 
    'use strict'; 
    $scope.system; 
    $scope.message; 
    $scope.writeUserData = function (equipment) { 
     firebase.database().ref('data/' + $scope.system + '/equipments').push({ 
      equipment: equipment 
    }); 
     $scope.message = "Success"; 
} 
}]); 

C'est à quoi il ressemble après que je pousse les données.

Database

Répondre

1

Si vous souhaitez contrôler le nom du nœud enfant, ne pas appeler push().

firebase.database().ref('data/' + $scope.system + '/equipments').set({ 
     equipment: equipment 
}); 

Mais vous voudrez probablement donner un nom au nœud enfant, par ex.

firebase.database().ref('data/' + $scope.system + '/equipments').child("Equipment1").set({ 
     equipment: equipment 
}); 

Ou

firebase.database().ref('data/' + $scope.system + '/equipments') 
    .child(equipment).set(equipment);