私の間違いのため申し訳ありませんが、私はかなりスタックオーバーフローで投稿するのが新しいです。うまくいけば私は十分な情報を提供しました。理論的には、行を削除して(その部分を削除して)対応するID(-KiN ...)を削除するCancelを押しています。特定の投稿IDを削除するにはどうすればよいですか?
テーブルの最初のレコードでキャンセルをクリックすると、データベースの最初のレコードが削除されますが、最後のレコードをクリックしても最初のレコードは削除されます。だから私は、テーブルのキャンセルボタンに対応する予約を取り消すことに問題があります。
https://jsfiddle.net/1s1h67u1/
https://i.stack.imgur.com/Uy0uK.png
var resvbTabRef = firebase.database().ref("Reservation/user")
resvbTabRef.on('child_added', function(snapshot) {
var user = firebase.auth().currentUser;
var specialKey = snapshot.key;
var fullName = snapshot.val().Name;
var phnNum = snapshot.val().Phone_Number;
var ResvUID = snapshot.val().uid;
var ResvDate = snapshot.val().Reservation_Date;
var NumPeopl = snapshot.val().Number_of_Guests;
var ResvEmail = snapshot.val().Email;
var ResvInfo = fullName + phnNum + ResvDate + NumPeopl + ResvUID + ResvEmail
if (user.uid == ResvUID) {
var resvData = ('<tr><td ="' + specialKey + '">' + specialKey + '</td><td>' + fullName + '</td><td>' + user.email + '</td><td>' + phnNum + '</td><td>' + ResvDate + '</td><td>' + NumPeopl + '</td><td>' + '<button type="button" class="btn btn-default btn-sm" data-key=' + ResvInfo.key + ' id="cancelResv"><span class="glyphicon glyphicon-remove"></span> Cancel</button>' + '</td></tr>')
$("#userResvTable").append(resvData);
} else {
console.log("error");
}
$('#userResvTable').on('click', 'button[type="button"]', function(snapshot) {
$(this).closest('tr').remove();
var resvbTabRef = firebase.database().ref("Reservation/user/")
resvbTabRef.once("value")
.then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var key = childSnapshot.key;
var childData = childSnapshot.val();
var ref = firebase.database().ref("Reservation/user/" + key)
return ref.remove().then(function() {
console.log('OK, gone');
console.log(childData)
}).catch(function(e) {
console.log('OOPS, problem:' + e.message);
})
childSnapshot.ref.remove();
// console.log(resTab)
})
})
コメントがありますか? –
大丈夫ですよ。 –
しかし、予約/ユーザーにはUIDがありません。予約/ユーザーには、予約をデータベースにプッシュするプッシュキーが含まれています。 –