firebase实时数据库更新值两次



我试图在flutter中的实时数据库中设置一个bool值,但它更改了两次值。首先,它将值从true设置为false,然后立即将其再次更改为true。

Future<void> changeTurnkey1(String roomCode, String key1) async {
var codeRef = _codeRef(roomCode);
await codeRef.child(playersKey).child(key1).get().then((value) async {
final Map snapshotMap = value.value;
bool val = snapshotMap[canPlay];
if (val) {
await codeRef.child(playersKey).child(key1).update({
canPlay: false,
});
} else {
codeRef.child(playersKey).child(key1).update({
canPlay: true,
});
}
});
}

似乎同时使用了async/await.then()。。。这肯定会产生不良影响。

试着像这样使用async/await

Future<void> changeTurnkey1(String roomCode, String key1) async {
var codeRef = _codeRef(roomCode);
var value = await codeRef.child(playersKey).child(key1).get()
final Map snapshotMap = value.value;
bool val = snapshotMap[canPlay];
if (val) {
await codeRef.child(playersKey).child(key1).update({
canPlay: false,
});
} else {
codeRef.child(playersKey).child(key1).update({
canPlay: true,
});
}
}

我也有同样的问题。最后发现我们的旧服务器程序(nodejs-doker(忘记停止了。

最新更新