繁体   English   中英

firebase 实时数据库更新值两次

[英]firebase realtime database updating value twice

我正在尝试在 flutter 的实时数据库中设置一个布尔值,但它会更改该值两次。 首先将值从 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 docker)忘记停止了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM