2016-10-02 4 views
3

У меня есть две кнопки, которые добавляют одну к переменной HomeScore и переменной GuestScore. У меня есть каждая кнопка для управления их соответствующими записями базы данных, но всякий раз, когда я нажимаю кнопку домашней оценки, она удаляет запись гостевого счета в базе данных.Две кнопки удаляют заданные данные друг друга

Он делает это и наоборот; всякий раз, когда я нажимаю кнопку гостевого счета, он удаляет значение домашней оценки.

Pastebin here

ответ

2

Matt, Вы обновляете ту же ссылку для домашних и гостевых счетов. Взгляните на следующие две строки:

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"); 

Update:

После изменения ссылки, а затем изменить set() вызов выглядеть следующим образом:

homeScoreRef.set(
    HomeScore 
); 

guestScoreRef.set(
    GuestScore 
); 

Это должно избавиться от дополнительного/дома и/гостя в ваших ссылках.

Кроме того, когда вы говорите homeScoreValueRef.on, где вы это понимаете? Где эта ссылка создается? Потому что я думаю, что вы хотели сделать homeScoreRef.on, правильно? Я думаю, именно поэтому вы получаете ошибку NaN.

Если у вас есть больше кода, чем показано в вашем Pastebin, убедитесь, что вы обновили его, чтобы ссылаться на соответствующие ссылки, но в целом, я считаю, что это ваша ошибка.

+0

Хм .. Я не уверен, как обращаться с кнопками, потому что кнопки указывали на дом и гостя, хотя их ссылка была оценкой. Вот консольная ошибка: «Неиспользуемая ошибка: сбой Firebase.set: первый аргумент содержит NaN в свойстве« scores.home.home ». Он идет на счет/home/home –

+0

. В вашем коде ваш слушатель говорит« homeScoreValueRef.on », но где этот homeScoreValueRef объявляется? – Ryan

+0

Кроме того, я просто хочу убедиться, что я понимаю, что вы делаете. Таким образом, у вас есть две кнопки, и когда вы нажимаете кнопку HomeScore, вы хотите, чтобы база данных добавляла «1» к значению в/scores/home, и когда вы нажимаете кнопку GuestScore, вы хотите, чтобы база данных добавляла «1» к значение в/баллы/гости. Это верно? – Ryan

Смежные вопросы