我正在处理一个简单的朋友添加 - 删除页面。
我的数据非常简单:
{
"usernameToUid" : {
"test1" : "JEhnsK6igwh69iX6pZo4cJMGL5L2",
"test2" : "0OhZ5eE27wOkTLE8C0PQHKTkYxk1"
},
"users" : {
"0OhZ5eE27wOkTLE8C0PQHKTkYxk1" : {
"friends" : {
"test1" : "JEhnsK6igwh69iX6pZo4cJMGL5L2"
},
"profile" : {
"firstName" : "Walter",
"lastName" : "White",
"username" : "test2"
}
},
"JEhnsK6igwh69iX6pZo4cJMGL5L2" : {
"friends" : {
"test2" : "0OhZ5eE27wOkTLE8C0PQHKTkYxk1"
},
"profile" : {
"firstName" : "Jesse",
"lastName" : "Pinkman",
"username" : "test1"
}
}
}
}
html上有一个朋友列表和一个滑动删除按钮;
<ion-item-sliding *ngFor="let friend of friendsArray; let i = index">
<ion-item>
<h2>{{friend.firstName}} {{friend.lastName}}</h2>
<p> {{friend.$key}} </p>
</ion-item>
<ion-item-options side="right">
<button ion-button color="danger" (click)="deleteFriend(i)">
<ion-icon name="delete"></ion-icon>
Delete
</button>
</ion-item-options>
</ion-item-sliding>
和.ts功能:
deleteFriend(i) {
console.log(this.friendsArray[i].$key)
console.log(this.friendsArray[i].$value)
this.afDatabase.list(`users/${this.myUid}/friends/`).remove(`${this.friendsArray[i].$key}`)
this.afDatabase.list(`users/${this.friendsArray[i].$value}/friends/`).remove(`${this.myUsername}`)
}
在这段代码中,friendsArray [i]。$ value是目标用户id,friendsArray [i]。$ key是目标用户的用户名。
当我单击删除按钮时,控制台完全返回列表中单击用户的$ value和$ key。但是,出现这样的错误:
ERROR TypeError: Cannot read property '$value' of undefined
我可以记录值和密钥,但我不能在代码中使用它为什么?以及如何解决它?
答案 0 :(得分:0)
我解决了这个问题的不同和简单的方法,但仍然不知道它为什么会起作用。
刚刚创建了两个字符串变量,并将它们用于$ key和$ value
this.friendIndexUsername = this.friendsArray[i].$key
this.friendIndexUid = this.friendsArray[i].$value
this.afDatabase.list(`users/${this.myUid}/friends/`).remove(`${this.friendIndexUsername}`)
this.afDatabase.list(`users/${this.friendIndexUid}/friends/`).remove(`${this.myUsername}`)
的工作。但有人可以点亮我的原因吗?