Java 如何在Firebase中获得儿童的价值
我在Firebase有这样的结构: 我有密码:Java 如何在Firebase中获得儿童的价值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我在Firebase有这样的结构: 我有密码: DatabaseReference curtidasRef = firebaseRef.child("postagens-curtidas").child(feed.getId()).child("qtdCurtidas"); 我的数据库结构: 我的问题是:如何获取qtdCurtidas的值?您可以使用valueEventListener获取数据。首先定义变量。正如我从你的截图中看到的,它是整数变量。然后将valueEventListener
DatabaseReference curtidasRef = firebaseRef.child("postagens-curtidas").child(feed.getId()).child("qtdCurtidas");
我的数据库结构:
我的问题是:如何获取
qtdCurtidas
的值?您可以使用valueEventListener获取数据。首先定义变量。正如我从你的截图中看到的,它是整数变量。然后将valueEventListener设置为数据库引用
int myValue;
curtidasRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
myValue= dataSnapshot.getValue(Integer.class);
}
@Override
public void onCancelled(DatabaseError error) {
//TODO: some codes to handele error
}
});
要获取您的
qtdCurtidas
的值,请使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("postagens-curtidas");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
long qtdCurtidas = ds.child("qtdCurtidas").getValue(Long.class);
Log.d(TAG, "qtdCurtidas: " + qtdCurtidas);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage());
}
};
ref.addListenerForSingleValueEvent(valueEventListener);
logcat中的输出将为:
qtdCurtidas: 1
对不起,弄错了。我编辑代码。应使用dataSnapshot而不是PostSnapshot如果您的答案显示myValue“Transform myValue”中有错误,则应将myValue变量定义为类变量。例如,公共类MyActivity扩展了AppCompatActivity{int myValue;您应该在代码中告诉您,
myValue
是一个全局变量,否则只会给出将其作为最终数组元素的错误。错误“Transform myValue”为最终一个元素数组,我如何修复?以这种方式声明变量??“final int[]qtdCurtidas=new int[1];”和“qtdCurtidas[0]=dataSnapshot.child(“qtdCurtidas”).getValue(Integer.class)这是正确的吗?你的问题在@LuisFelipe解决了吗?还没有,但是解决方案2正在进行中。你的建议是正确的,但是我有更多的孩子叫'qtdCurtidas',我想得到一个特别的。我想在feed.getId中得到'qtdCurtidas'。我将添加到我的数据库图片中,我如何在feedId中得到这个值?使用相同的base您在回答@Alex MamoIn时使用的方式与我在回答中向您展示的方式完全相同。您可以获得每个孩子下的qtdCurtidas值。您是否尝试过该代码,结果如何?