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