Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Firebase实时数据库获取两个变量_Java_Android_Firebase Realtime Database - Fatal编程技术网

Java 如何从Firebase实时数据库获取两个变量

Java 如何从Firebase实时数据库获取两个变量,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,在我的应用程序中,我想从数据库中获取两个整数变量 我想从“text_1”中得到“gedrueckt”。但我一直在为非常复杂的指南而挣扎(我的英语不是最好的,对java来说或多或少是新的),还有一些因为应用程序崩溃而无法使用的东西 我终于试过了,但如果舒尔能从我的数据库中获得正确的东西,以及我会如何让它因为崩溃而工作,我就不是舒尔了 MainActivity.java: myRef.addChildEventListener(new ChildEventListener() {

在我的应用程序中,我想从数据库中获取两个整数变量

我想从“text_1”中得到“gedrueckt”。但我一直在为非常复杂的指南而挣扎(我的英语不是最好的,对java来说或多或少是新的),还有一些因为应用程序崩溃而无法使用的东西

我终于试过了,但如果舒尔能从我的数据库中获得正确的东西,以及我会如何让它因为崩溃而工作,我就不是舒尔了

MainActivity.java:

        myRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String text = "text_" + selecter;
            Log.d(TNOT, dataSnapshot.getValue(String.class));

        }
使用上面的代码时出错:

FATAL EXCEPTION: main
                                                                                     Process: com.example.alex.wouldyoupressthebutton, PID: 22850
                                                                                     com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
                                                                                         at com.google.android.gms.internal.zzdzl.zzb(Unknown Source)
                                                                                         at com.google.android.gms.internal.zzdzl.zza(Unknown Source)
                                                                                         at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
                                                                                         at com.example.alex.wouldyoupressthebutton.MainActivity$1.onChildAdded(MainActivity.java:99)
                                                                                         at com.google.android.gms.internal.zzdqc.zza(Unknown Source)
                                                                                         at com.google.android.gms.internal.zzdvo.zzbur(Unknown Source)
                                                                                         at com.google.android.gms.internal.zzdvu.run(Unknown Source)
                                                                                         at android.os.Handler.handleCallback(Handler.java:751)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                         at android.os.Looper.loop(Looper.java:154)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:6316)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
希望你能帮我解决这个问题


mrminemete

您必须读取像密钥对这样的值

  for (DataSnapshot data : dataSnapshot.getChildren()) {
    String yourText = String.valueOf(data.child("name from your fierbase child ").getValue());
    yourObjectList.add(yourTextValue);
  }
或者一个完整的例子:

private DatabaseReference mDataBaseRef;
mDataBaseRef= FirebaseDatabase.getInstance().getReference()

ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    int youtItemId = dataSnapshot.child("user").child("yourItemId").getValue(Integer.class);
}

@Override
public void onCancelled(DatabaseError databaseError) {
    // Log the message from databaseError
  }
};

mDataBaseRef.addValueEventListener(postListener);
DatabaseReference reference = 
database.getReference("UserInfo").child("gameStats");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

    // You have to use key-value pairs like in ContentValues
    // To loop through the values

    for (DataSnapshot snap: dataSnapshot.getChildren()) {
     snap.child("child") yourObeject.getValue(youObject.Class) 

    }

}
还有一个例子:

private DatabaseReference mDataBaseRef;
mDataBaseRef= FirebaseDatabase.getInstance().getReference()

ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    int youtItemId = dataSnapshot.child("user").child("yourItemId").getValue(Integer.class);
}

@Override
public void onCancelled(DatabaseError databaseError) {
    // Log the message from databaseError
  }
};

mDataBaseRef.addValueEventListener(postListener);
DatabaseReference reference = 
database.getReference("UserInfo").child("gameStats");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

    // You have to use key-value pairs like in ContentValues
    // To loop through the values

    for (DataSnapshot snap: dataSnapshot.getChildren()) {
     snap.child("child") yourObeject.getValue(youObject.Class) 

    }

}
}