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

Google Firebase检查孩子是否存在

章睿
2023-03-14
问题内容

在我的应用程序中,我需要检查firebase上数据库的给定元素是否有一个具有给定名称的孩子。我希望可以通过以下方式来做到这一点:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

if (rootRef.childExists("name")) {
    //run some code
}

我进行了搜索,但找不到任何有用的信息。


问题答案:

编辑2; 值得放在最上面:我认为值得一提的是,它实际上是在此快照中下载所有数据,只是为了检查是否存在任何数据。您在这里要小心。如果引用很大(例如,
实际上 是根引用,而不是特定的子项/属性),则您应该找到可以用于检查是否存在的更深的节点,或者以不同的方式设计数据结构,从而可以进行有效的检查。

数据库引用实际上是该数据的URL。您实际上想 获取
数据以查看是否存在孩子。这就是为什么您似乎要寻找的方法位于DataSnapshot上的原因。

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  void onDataChange(DataSnapshot snapshot) {
    if (snapshot.hasChild("name")) {
      // run some code
    }
  }
});

现在,这种设计模式有些奇怪。您正在阅读整个数据库,只是为了查看“名称”是否存在。您可以通过侦听rootRef.child("name")然后检查是否有效来使此过程更有效snapshot.exists()

如果您要在此处进行 验证 而不是控制流程,则应考虑将此代码放入rules.json

编辑 :我最初使用错误的函数名称(childExists而不是hasChild)



 类似资料:
  • 问题内容: 可能存在但可能不存在。我该如何检查? 问题答案: 如果不存在,则其值为(或者更确切地说,将没有任何值)。但是请注意,对于这个工作,既和需要不。否则,PHP将抛出错误(我认为)。

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案:

  • 问题内容: 我需要帮助检查数据库中是否存在行。就我而言,该行包含一个电子邮件地址。我得到结果: 这是我当前正在使用的代码: 有没有更好的方法来检查MySQL中是否存在行(在我的情况下,检查MySQL中是否存在电子邮件)? 问题答案: 以下是经过尝试,测试和证明的检查行是否存在的方法。 (其中一些我自己使用,或者过去使用过)。 编辑: 我在使用两次的语法中犯了一个先前的错误。请查阅修订版本。 即:

  • 我需要帮助检查数据库中是否存在行。在我的例子中,该行包含一个电子邮件地址。我得到的结果是: 这是我目前使用的代码: 有没有更好的方法来检查MySQL中是否存在行(在我的例子中,检查MySQL中是否存在电子邮件)?

  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。