2017-09-15 18 views
0

現在、firebaseノード(プロパティ)にデータをプッシュして新しいプロパティを作成することができますが、データをプッシュすると、それを削除するために作成された新しいプロパティのキー。firebaseキーを取得できず、firebaseからオブジェクトを削除できません

私はこれがかなりシンプルだと確信していますが、それでもまだ私を逃すことはありません。

ありがとうございます。 :)以下

コードは:

angular.module('propApp') 
.controller('propertyCtrl', function($scope, $rootScope, $mdDialog, $mdMedia, $mdSidenav){ 

    let database = firebase.database(); 
    let ref = database.ref(); 
    let uid = firebase.auth().currentUser.uid; 
    let propRef = ref.child('properties'); 

    // add new property function 
    $scope.addNewProperty = function(){ 

     var newProp = propRef.push({ 
      street: $scope.property.street, 
      postalCode: $scope.property.postalCode, 
      apt: $scope.property.apt, 
      city: $scope.property.city, 
      state: $scope.property.state, 
      landlord: uid, 
      address: $scope.property.street + " " + $scope.property.city + " " + $scope.property.state + " " + $scope.property.postalCode + " " + $scope.property.apt 
     }) 
    }; 

    // var newPropKey = newProp.push().key; 


    // delete property function 
    $scope.deleteProperty = function(){ 
     // delete property 

     // new property variable 
     var newPropKey = ????; //not sure if this is right 

     // want to use a variable to delete property 
     propRef.child('newPropKey').remove(); 



     console.log('deleted!'); 
    } 

}) 
+0

私は角について多くを知らないと、あなたは、この情報が、[firebaseプッシュ](https://firebase.google.com/docsを使用する方法/reference/js/firebase.database.Reference#push)は、新しく作成されたレコードへの参照を返します。 'newProp'を使ってfirebaseで新しいアクションを行うことができます。 – bennygenel

答えて

-1
var ref = firebase.database().ref('properties'); 

ref.push({some:'thing'}).then(function(snap) { 
    console.log(snap.key); 
    //look at the database to verify the key is there 
    setTimeout(function() { 
    snap.ref.set(null); 
    //or 
    //ref.child(snap.key).set(null); 
    },5000); 
}) 
+0

あなたのアプローチが関連するキーを取得するのは正しいですが、なぜデータを削除するためにsetTimeoutを使用する必要があるのか​​分かりません。質問によれば、キーを後で削除のために使用できるように、キーをフェッチするだけです。 –

+0

タイムアウトがあるので、データベースコンソールからの値の表示/非表示を見ることができます。それ以外の場合、値が実際にfirebaseに追加されたかどうかは不明です。 – Vincent

+0

私は質問から集めることができるので、ユーザーはプッシュした直後にプロパティを削除する必要はありません。代わりに、必要な方法で削除または操作するための鍵が必要です。 –

関連する問題