从 Firebase 查询更新变量值?

2024-03-24

我目前正在尝试使用从 firebase 中提取项目的值once,并使用该值填充 varitemsList。但是,尽管 itemsList 已正确填充在once调用时,它在调用外部记录为未定义。我认为这可能与 Firebase 的异步特性有关,但我不确定如何解决这个问题。有什么建议么?

submitAnswer: function() {
    var userRef = usersRef.child(key);

    //get items_list for user
    var itemsList;
    userRef.once('value', (snap) => {
        itemsList = snap.val().items_list;
        console.log('items list populated here' + itemsList);
    });

    console.log("items list not populated here" + itemsList);
},

您对 Firebase 调用的看法是正确的,它是异步的,并且代码不会在记录未填充的 itemsList 之前等待它完成。

如果您只想对数据执行一些简单的操作,请务必在对其执行任何操作之前检查它是否存在(并像处理任何异步数据一样处理它)。

if(itemsList){
  console.log('My items have arrived! ' + itemsList);
}

如果该数据要在您的应用程序中进一步传播,通常建议使用来自 Firebase 的响应数据调用 setState(),以使用刚刚获取的新数据触发组件的重新渲染。

所以大致如下:

userRef.once("value", (snap) => {
  itemsList = snap.val().items_list;

  this.setState({
    items: itemsList;
  });

}.bind(this));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Firebase 查询更新变量值? 的相关文章

随机推荐

  • 如何在布线级别验证 Rails 中的静态参数?

    我目前有以下宁静的网址 questions 2011 05 我的提问路线是 match questions year month gt Questions month 如何在路线级别验证上述年份和月份参数 以便 年和月是整数 最短 最长一年
  • android numberpicker 用于浮点数

    我们应用程序的用户应该能够调整浮点数 目前 我用所有可能的值填充了 ArrayAdapter 并将其附加到微调器 这个解决方案并没有真正满足我们的期望 因为旋转下拉框太高了 有没有更好的办法 我正在查看 Numberpicker 但这似乎只
  • 造型 ActionBar Sherlock

    我正在尝试自定义我的 sherlock 操作栏 但我在 style xml 中编写的任何代码都未被识别 在我的清单文件中 android theme style Theme Sherlock 我的样式 xml
  • 通过 nginx 和 ServiceStack 在 fastcgi-mono-server 上进行小负载测试后,网关 502 错误

    我正在尝试在 nginx 和 fastcgi mono server 下使用 ServiceStack 运行 Web 服务 API 服务器启动正常 API 已启动并运行 我可以通过 ServiceStack Profiler 在浏览器中查看
  • Scala-IDE 中工作表中的类导致错误

    只需在工作表中键入以下内容即可实例化一个类 注意 工作表是使用 文件 gt 新建 gt Scala 工作表 创建的 sc文件 不是普通文件 scala文件 并单击保存会导致虚假错误 鼠标移到 这条线上有多个标记 简单表达式的非法开头 符合预
  • 基于检查约束的分区修剪未按预期工作

    为什么下面的查询计划中包含表 events 201504 根据我的查询和该表的检查约束 我希望查询规划器能够完全修剪它 database d events 201504 Table public events 201504 Column T
  • Clojure WebSocket 应用程序的 nginx 产品设置

    我正在尝试部署我的第一个 Clojure WebSocket 应用程序 我想我已经很接近了 我在本地得到了很好的响应 看起来端点想要面对外界 当我运行时我看到端口是开放的netstat 但没有任何反应 我确信我的某些设置不正确nginx 我
  • 如何在 Vue.js 方法中使用外部 JavaScript 对象

    我正在尝试让 Stripe 与我的 Vue js 2 应用程序一起工作 出于 PCI DSS 原因 Stripe 要求其 Javascript总是从加载js stripe com https stripe com docs web setu
  • 我应该使用 URLDownloadToFile 吗?

    我正在寻找用 C 下载文件的最简单方法 在 Windows 上 URLDownloadToFile 听起来很棒 并且不需要我使用curl 或其他我不需要的胖库 这个函数有什么要求 它将在哪些 Windows 上运行 Thanks http
  • 基于 JavaScript 的开源客户端 2D 数据绘图?

    我想知道是否有任何使用 JavaScript 在客户端运行的 2D 图形绘制库 基本思想是 您可以在浏览器中放置一个绘图 用户可以更改 X 和 Y 比例和限制 放大和缩小等内容 而无需不断地从服务器重新加载网页 数据本身将通过 AJAX 获
  • 尝试在空对象引用上调用虚拟方法“androidx.navigation.NavGraph androidx.navigation.NavDestination.getParent()”

    我创建了一个 Android 应用程序 并从图库中添加了 导航抽屉活动 删除并重命名了菜单项 启动应用程序后 当我单击抽屉活动中的任何菜单项时 出现以下错误 java lang NullPointerException Attempt to
  • 布局位于状态栏和软键下方

    我不确定我是如何得到这个的 而且我找不到类似的东西 但我的软件导航和状态栏是在我的布局上绘制的 而不是我的布局适合它们之间 如何让我的布局绘制在它们之间而不是下面 Edit 看来这就是罪魁祸首 位于样式中
  • 为什么“change_protection”在将大量数据加载到 RAM 时会占用 CPU?

    我们建立了一个内存数据库 单个数据库占用约 100 150G RAMVec https doc rust lang org std vec struct Vec html 其填充如下 let mut result Vec with capa
  • 如何镜像 UIBezierPath?

    我有一个UIBezierPath我想得到它的镜像 我怎样才能做到这一点 Method for generating a path UIBezierPath myPath self generateAPathInBounds bounding
  • byte[] 转灰度 BitmapImage

    我从 128 x 128 双精度数组开始 然后将其转换为每个双精度值具有比例值的一维字节数组 然后我获取这个字节数组并将其转换为内存流 dataStream下面 并尝试将其放入BitmapImage像这样 imgScan Width 128
  • Android:启动时在后台进行应用程序登录

    我有一个VOIP应用程序 我需要在设备启动时在后台登录应用程序 目前我的应用程序的初始化已完成UI Active onCreate 我心里有以下几点 谁能帮我解答一下我的疑惑 服务设计是必须完成这个任务吗 Which Service Rem
  • Raphael JS 组合路径

    我对 SVG 和 Raphael 还很陌生 但我已经使用 Illustrator 多年了 所以我对其工作原理有一些假设 我想组合两个应该返回单个元素的路径 我需要制作一个对话气泡 但它实际上可以是任何东西 在这种情况下 我尝试制作两个rec
  • Linux 内核 dentry 和 inode

    是否可以从给定的 dentry 和 inode 构造绝对路径 谢谢大家 如果你有一个struct path 或者可以构造一个 看看 tomoyo 是如何做到这一点的 http lxr linux no linux v2 6 37 secur
  • 为什么 JavaScript 中的 Boolean() 这么慢?

    根据 ECMAScript 规范 两者一元逻辑 NOT 运算符 http www ecma international org ecma 262 5 1 sec 11 4 9 and the Boolean 功能 http www ecma
  • 从 Firebase 查询更新变量值?

    我目前正在尝试使用从 firebase 中提取项目的值once 并使用该值填充 varitemsList 但是 尽管 itemsList 已正确填充在once调用时 它在调用外部记录为未定义 我认为这可能与 Firebase 的异步特性有关