Firebase, как обновить дочернее значение в JavaScript - PullRequest
0 голосов
/ 04 мая 2020

Я хочу обновить дочернее значение в зависимости от categoryId. Я пытался следовать этому руководству Firebase DB - Как обновить определенное значение child в базе данных Firebase . Это работа, но она не хранится в одной и той же ссылке. Это магазин в другой реф.

https://i.stack.imgur.com/SaqjD.png

firebase.database().ref('usuario')
                    .on('value',event =>{
                        event.forEach(user =>{
                            user.child('eventos').forEach(evento =>{
                                if (evento.val().categoryId === payload.id){
                                  //Here is where i try to update the childe value, in my case category
                                    let ref = firebase.database().ref('usuario/'+user.key+'/'+evento.key+'/'+evento.val().category)
                                        .set(payload.name)
                                    console.log(ref)
                                }

                            })
                        });

                    });



1 Ответ

1 голос
/ 04 мая 2020

2 проблемы: 1.Вы забыли добавить "\ eventos" на свой дочерний путь. 2. не используйте .set (), потому что он удалит все остальные данные. Вместо .set () используйте .update (). Попробуйте этот код:

firebase.database().ref('usuario')
                    .on('value',event =>{
                        event.forEach(user =>{
                            user.child('eventos').forEach(evento =>{
                                if (evento.val().categoryId === payload.id){
                                  //Here is where i try to update the childe value, in my case category
                                    let ref = firebase.database().ref('usuario/'+user.key+'/eventos/'+evento.key+'/'+evento.val().category)
                                        .update(payload.name)
                                    console.log(ref)
                                }

                            })
                        });

                    });

Дайте мне знать, если он все еще не работает

...