gpt4 book ai didi

java - Google firebase 检查 child 是否存在

转载 作者:IT老高 更新时间:2023-10-28 21:02:27 25 4
gpt4 key购买 nike

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

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

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

我搜索过,但找不到任何有用的东西。

最佳答案

编辑 2;值得一提:我认为值得一提的是,这实际上是下载此快照中的所有数据,只是为了检查是否存在任何数据。你应该注意这里。如果引用很大(例如 实际上 是根引用而不是特定的子/属性),那么您应该找到一个更深的节点,您可以使用它来检查是否存在,或者以不同的方式设计您的数据结构,以便高效检查是可能的。

数据库引用实际上是该数据的 URL。您实际上想要获取 数据以查看是否存在 child 。这就是为什么您似乎正在寻找的方法位于 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

edit:我原来使用了错误的函数名(childExists而不是hasChild)

关于java - Google firebase 检查 child 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com