【问题标题】:how to return promise in firebase set()如何在firebase set()中返回承诺
【发布时间】:2020-01-17 03:07:28
【问题描述】:

如果数据被正确推送到 Firebase,我希望获得成功,或者如果被拒绝则捕获错误。我试过这样的代码:

db.push().set(todo).then(snap => {
      console.log(snap);

    });

但是 SNAP,回调,是 UNDEFINED 。我如何需要在这里使用 Promise?

【问题讨论】:

  • 什么返回未定义?您能否编辑问题中的代码以说明您是如何观察到这一点的?
  • 快照返回未定义,您要编辑什么?一切都清楚了

标签: javascript firebase firebase-realtime-database


【解决方案1】:

.then 不会返回数据的快照——您需要在回调中对数据进行“一次”快照

db.push().set(values).then(() => {
  console.log('Successfully set');

  db.once('value').then((snap) => {
    console.log(snap);
  });
});

【讨论】:

  • 如果 then 运行,设置成功还是我需要读取值才能知道设置是否成功?
  • @DanielJosePadillaPeña 运行 .set().then() 时,firebase 添加了没有问题的数据。所以你可以假设它已经设置好了。
  • 读回数据是没有意义的,因为您已经在 set 方法中获得了值。如果调用 set,则数据已成功设置,否则调用 get error 方法。
  • @AlfonsoBriceño 我在这里是因为我需要我刚刚保存的数据的 ID,以便我可以执行一些 UI 交互,这些交互严重依赖于本地数据的本地 ID 或已保存数据的远程 ID .
猜你喜欢
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多