database
|
places
|
user1
| |___indoors: "yes"
| |___outdoors: "yes"
|
user2
|___indoors: "yes"
|___outdoors: "no"
ValueEventListener placesListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String locations = dataSnapshot.toString(); // I get the entire tree as String
}
}
//this is how I set the listener to changes
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("places");
reference.addValueEventListener(placesListener);
但是,当我只想要indoors
子项时,我会得到datasnapshot{key=indoors,value=null}
。
这就是我如何尝试只获得indoors
键和值(几乎相同,只是添加了额外的.child(“indoors”)
:
ValueEventListener placesListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String indoors = dataSnapshot.child("indoors").toString(); // I get value = null
}
}
// listener remains the same
datasnapshot
中包含的数据是相对的,就像JSON树一样。来自datasnapshot#child()
的文档:
获取指定相对路径上位置的DataSnapshot。相对路径可以是简单的子键(例如'fred'),也可以是更深的斜杠分隔路径(例如'fred/name/first')。如果子位置没有数据,则返回空的DataSnapshot。
在您的示例中,在places
节点的正下方没有名为indoors
的子节点。相反,您有两个名为user1
和user2
的子级,这两个子级分别有一个名为indoors
的子级。因此,为了访问indoors
子项之一,您需要执行以下操作:
dataSnapshot.child("user1").child("indoors").toString();
for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
Log.d(childSnapshot.getKey() + ": indoors=" + childSnapshot.child("indoors").toString());
}
假设我有一个对象Person,其字段类型为FirstName和LastName。现在我也有一个并且我喜欢使用流。 现在我要生成一个,以便将具有相同名字的人分组。我如何在不编写大量代码的情况下进行这一操作?到目前为止我的方法是 但似乎这是分配地图值的错误方法。我该换什么?或者我是否应该使用.reduce和作为初始值,然后通过将元素放入内部来聚合它?
我正在用java创建一个掷骰子的应用程序。我有一个掷骰子的“骰子”类,和一个使用“骰子”的多个实例变量的“骰子”类。但是,它只为我的值返回0。骰子类本身可以工作,并且会掷出一个随机数,但是我不知道如何在我的“骰子”类中得到多个掷骰子。感谢任何帮助。 骰子类 模具等级
问题内容: 我有一个这样的表“ bla”: 如果我做SQL查询 我只得到ID为2的记录。我没有ID为3的记录,其中fk为空。我以为NULL!=4。看来这是错误的。 为什么会这样呢? 问题答案: 不等于任何东西。您需要明确接受null: 有关处理的更多信息,请参见使用NULL。
问题内容: 当我获得不同的记录计数时,出现了这个问题,我认为这是相同的查询,一个使用 约束,另一个使用a 。约束中的表具有一个空值(错误数据),该空值导致该查询返回计数为0的记录。我有点理解为什么,但是我可以使用一些帮助来完全理解这个概念。 简单地说,为什么查询A返回结果而B不返回结果? 这是在SQL Server 2005上。我还发现调用导致B返回结果。 问题答案: 查询A与以下内容相同: 既然
问题内容: 我的数据库具有按以下方式排序的值: 我想实现一个朋友添加系统,您可以在其中搜索用户名或电子邮件,并允许您添加此人。 我可以通过使用找到用户 这样我就可以得到用户的整个字典,但是在获取UID时遇到了问题。 snapshot.key给了我“用户”。 使用用户名/电子邮件找到用户的字典后,如何从字典中获取UID值? 问题答案: 对Firebase数据库执行查询时,可能会有多个结果。因此,快照
我想按姓名、姓氏或电子邮件搜索用户,但由于我没有上述级别的用户密钥,我不知道如何实现这一点。我正在执行和管理员会话,因此它无法访问用户密钥。 我尝试过: 但它会把所有用户都带到数据库上。有什么想法吗?