2017-09-07 24 views
0

(採用了棱角分明的4.2.x版和angularfire2 4.x版)火力地堡+角清除數據最好的辦法

目前,我有以下結構,這使我動態顯示每個用戶的數據,因爲它的變化:

// Firebase DB 
{ 
    "users" : { 
    "-KtPA3f-UjTPveqMW-aP" : { 
     "name" : "person 1", 
     "data" : "abc" 
    }, 
    "-KtPA6Ovj_y9Gw_cCxRo" : { 
     "name" : "person 2", 
     "data" : "def" 
    } 
    } 
} 

// component.ts 
private getUsers(): FirebaseListObservable<any> { 
    return this.db.getUserList(); 
} 

// component.html template 
<tr *ngFor="let user of getUsers() | async"> 
    <td> 
    {{user.name}} 
    </td> 
    <td> 
    {{user.data}} 
    </td> 
</tr> 

我希望能夠快速清除所有用戶的「數據」屬性。

我最初想重組我的數據庫是這樣的:

// Firebase DB 
{ 
    "group": { 
    "users": { 
     "-KtP9Zo9du3pK3NoBMv7": { 
     "name": "person 1" 
     }, 
     "-KtP9Zsz_58v7w4YJOaB": { 
     "name": "person 2" 
     } 
    }, 
    "userData": { 
     "-KtP9Zo9du3pK3NoBMv7": { 
     "data": "abc" 
     }, 
     "-KtP9Zsz_58v7w4YJOaB": { 
     "data": "def" 
     } 
    } 
    } 
} 

...然後只是在必要的時候刪除「用戶數據」的對象,但當時我不知道如何利用這結構在我的component.ts和我的模板。我想我會以某種方式需要「加入」對象,但仍然保持數據動態? (我是Angular的新手)

我也可以嘗試使用舊的結構來寫一些東西來通過「用戶」對象並清除每個「數據」屬性,但我不太清楚該怎麼做無論是因爲我還是AngularFire的新手。

歡迎任何線索!謝謝!

回答

0

我從你的問題中瞭解到,你想在所有用戶節點中正確刪除用戶 - >數據是你想要的嗎? 我不知道打字稿,但我能做到這一點的火力點像,像下面

首先創建這樣

var delUserData={}; 

對象,然後得到數組中的所有用戶的列表中,這樣就可以遍歷它,

for (var i=0;i<usersArray.length; i++){ 
    delUserData["users/"+usersArray[i].$id+"/"+"data"]=null; 
}); 

,然後通過刪除OBJ進入火力查詢像

firebase.database().ref().update(delUserData).then(function(){ 
    alert("Success") 
}); 

我已添加jsfiddle示例See this example