两个按钮相互删除设置数据

时间:2016-10-02 01:39:25

标签: javascript firebase firebase-realtime-database

我有两个按钮,可以在HomeScore变量和GuestScore变量中添加一个按钮。我得到了每个按钮来控制他们各自的数据库条目,但每当我按下主页分数按钮时,它都会删除数据库中的客人分数条目。

它反过来也这样做;每当我按下客人评分按钮时,它都会删除主评分值。

Pastebin here

1 个答案:

答案 0 :(得分:2)

马特 您正在为家庭和访客分数更新相同的参考。看看以下两行:

var homeScoreRef = firebase.database().ref("scores/");
var guestScoreRef = firebase.database().ref("scores/");

这些参考文献完全相同。如果你设置其中一个,然后设置另一个,第一个将被覆盖。

在下面的代码中,您将这些引用设置为它们各自的值,但请记住,由于您使引用指向数据库的完全相同的部分,因此您只需使用按下的按钮覆盖您的值。

homeScoreRef.set({
    home: HomeScore
});

guestScoreRef.set({
    guest: GuestScore
});

尝试这样的事情:

var homeScoreRef = firebase.database().ref("scores/home/");
var guestScoreRef = firebase.database().ref("scores/guest/");

或者您可以这样做:

var homeScoreRef = firebase.database().ref("scores/").child("home");
var guestScoreRef = firebase.database().ref("scores/").child("guest");

<强>更新

更改引用后,将set()调用更改为:

homeScoreRef.set(
    HomeScore
);

guestScoreRef.set(
    GuestScore
);

这应该摆脱你的参考文献中的额外/ home和/ guest。

另外,当你说homeScoreValueRef.on时,你在哪里得到这个?这个参考是在哪里创建的?因为我认为你打算做homeScoreRef.on,对吗?我认为这就是你得到NaN错误的原因。

如果您的代码多于您在Pastebin中显示的代码,请确保更新代码以引用正确的引用,但总的来说,我认为这是您的错误。