我正在使用 React Native 和 Firebase 实时数据库开发应用。
在数据库中,我有如下一些数据。
myRoot
|
|--myValue1: 0
|
|--myValue2: 2
然后,我想将这些值加一并得到以下结果。
myRoot
|
|--myValue1: 1
|
|--myValue2: 3
为此,我使用了如下函数。
myFunction = () => {
const myRef = firebase.database().ref('myRoot');
return myRef.transaction((data) => {
data.myValue1++;
data.myValue2++;
return data;
})
.then(console.log('Done'))
.catch((error) => console.log(error));
}
但是,调用该函数后,出现以下错误。
[Unhandled promise rejection: TypeError: null is not an object (evaluating 'data.myValue1')]
我尝试拍摄 myRef
的快照
并将其打印在控制台中。它工作并打印了当前值。但是,transaction
不起作用并给出 null
。
请帮我解决这个问题。
最佳答案
您需要检查 data
是否为 null,因为这是第一次调用事务处理函数时发生的情况。如果处理程序出现在您执行事务的数据库位置,则将使用快照再次调用该处理程序。您可以在 documentation 中的示例代码中看到正在执行此检查。 .
关于javascript - React Native Firebase 事务无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57614316/