Firebase обрабатывает транзакции в Nodejs - PullRequest
0 голосов
/ 03 февраля 2019

Firebase документировал, как обрабатывать транзакции с Java, но не с Nodejs ( document )

Из-за своей структуры транзакции могут возвращать ноль при первом запуске, и в отличие от Java, Nodejs не делает 'не иметь getValue ().В результате транзакции возвращается само значение.Итак, как я могу применить структуру выше к Nodejs?

В моем коде данные могут быть нулевыми, и в этом случае должно быть установлено значение 1. Но когда я получаю «ложные нули», я не могу понять, что делать.

 admin.database().ref(`/matches/${uid}/${matchUID}`)
                                .transaction(current => {

                                    if (current === null) {                      
                                        userMatchesRef.child(matchUID).set(1);
                                    }
                                    else {                                     
           userMatchesRef.child(matchUID).set(current + 1);

                                    }
                                })

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Транзакции базы данных Firebase почти всегда изначально запускаются с null для значения current.Вам нужно будет справиться с этим, даже если вы точно знаете, что значение не null.Тогда ваш обратный вызов будет вызван снова, и тогда вы получите более разумное значение для current.Для объяснения того, как работают транзакции базы данных Firebase, смотрите мой ответ здесь: FireBase runTransaction не работает - MutableData имеет значение null .Хотя это и для Java, та же логика применяется ко всем Firebase SDK.

Документацию Firebase по обработке транзакций в Node.js SDK см. https://firebase.google.com/docs/database/admin/save-data#section-transactions. Но ссылки из ответа Криса будуттоже работают, поскольку Node.js и Web SDK работают одинаково в этом отношении.

0 голосов
/ 03 февраля 2019

https://firebase.google.com/docs/database/web/read-and-write#save_data_as_transactions содержит документацию по node.js, которая может помочь.Чтобы помочь вам с ложными нулями, рассмотрите возможность добавления дополнительной информации.

...