当前位置: 首页 > 面试题库 >

测试Firebase中是否存在数据

柯建业
2023-03-14
问题内容

我想先测试Firebase中是否存在数据,然后再添加它。但是我的方法有问题:我尝试使用此Javascript代码列出所有数据:

var theDataToAdd = userName;
var usersRef = new Firebase('https://SampleChat.firebaseIO-demo.com/users/');
usersRef.on('child_added', function(snapshot) {
   var message = snapshot.val();
   if (message.name == theDataToAdd)
      alert ("exist");
});

但是,如果该用户不存在,则会在之前添加该用户,然后我的代码会说该用户存在。您会说这是正常的,因为仅在“
child_added”时才调用我的警报,但是我不知道该怎么做。

我也尝试使用“值”事件,但我的“ message.name”为空。

我该如何解决?


问题答案:

您可以DataSnapshot.hasChild用来确定某个孩子是否存在。

usersRef.once('value', function(snapshot) {
  if (snapshot.hasChild(theDataToAdd)) {
    alert('exists');
  }
});

但这将下载所有数据usersRef并在客户端上执行检查。通过加载更具针对性的引用,只为您要检查的用户下载数据,效率会更高:

usersRef.child(theDataToAdd).once('value', function(snapshot) {
  if (snapshot.exists()) {
    alert('exists');
  }
});


 类似资料:
  • 我已经将Selenium WebDriver添加到Powershell并创建WebDriver实例: 现在我要找到输入字段: 我发现了几个如何在C#中“测试元素是否存在”的例子: Selenium WebDriver-测试元素是否存在

  • 问题 你想测试一个文件或目录是否存在。 解决方案 使用 os.path 模块来测试一个文件或目录是否存在。比如: >>> import os >>> os.path.exists('/etc/passwd') True >>> os.path.exists('/tmp/spam') False >>> 你还能进一步测试这个文件时什么类型的。 在下面这些测试中,如果测试的文件不存在的时候,结果都会返

  • 这个代码段总是执行else部分,所以我想等到变量从数据库中获取值后再执行。

  • 问题内容: 目前,我有一个这样的对象数组: 我正在测试是否存在对象,然后再进行如下操作: 但是我正在寻找一种更短的方法来执行此操作,因为我经常这样做。我想做这样的事情,但这是无效的: 是否有我缺少的速记语法或更好的方法? 问题答案: 为什么不使用内置功能?它有两种口味 第一个以谓词为参数。 更新:从Swift 2开始, 两个全局函数都已被 协议扩展方法 取代: 第一个(基于谓词的)用作: 斯威夫特

  • firebase中是否有方法可以检查DB中是否存在值?Firebase有方法。exists(),但根据文档,它只检查键。 我有以下结构: 我想检查是否存在值为U1EL5623的ID。