1 回答
TA贡献1789条经验 获得超10个赞
在没有完整路径的情况下,您无法在 Firebase 实时数据库中使用查询来获取两层深的对象。有一个解决方案,您可以在empresa节点上添加一个侦听器并使用getValue()方法。它返回 aMap<String, Object>但不推荐,因为您正在获取该节点内的所有数据。换句话说,这是对带宽和资源的浪费。empresa一种解决方案可能是通过将节点添加为用户对象的属性来更改数据库结构。
我将为您提供可以帮助您获取该对象的代码,但我鼓励您找到更适合您要执行的查询的更合适的数据库模式。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference empresaRef = rootRef.child("empresa");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Map<String, Object> map = (Map<String, Object>) ds.getValue();
//Iterate through the map and get the results
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
empresaRef.addListenerForSingleValueEvent(valueEventListener);
添加回答
举报