【发布时间】:2017-06-29 21:02:03
【问题描述】:
您好,我打算创建一个应用程序,并且是 android 新手。
我使用 Firebase 作为后端,每次用户获胜时我都会尝试更新和评分。
我正在使用这个应用程序崩溃:
public void updatescore (){
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser() ;
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
String uid = currentFirebaseUser.getUid();
final DatabaseReference mostafa = ref.child(uid);
mostafa.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int saldo2 = dataSnapshot.getValue(Integer.class);
saldo saldoide = new saldo(saldo2 + 100);
mostafa.setValue(saldoide);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
我的数据库很简单:
KQSxF0e901gCPwgu2npvAm0BsKy2
saldo2: 0
代码:
if (ejugador1.equals("paper") && ejugador2.equals("stone")){
resultado = "You Win";
updatescore ()
}
【问题讨论】:
-
你能分享错误跟踪信息吗?
-
@RohitPadma com.google.firebase.database.DatabaseException: 无法将 java.util.HashMap 类型的值转换为 int
-
试试这一行:- int saldo2 = Integer.valueof(dataSnapshot.getValue().toString());
-
@RohitPadma 之前的错误消失了,但现在我有了这个:java.lang.NumberFormatException: For input string: "{saldo2=0}"
-
dataSnapshot.getValue().toString() 正在返回 {saldo2=0} 因此您无法将其转换为整数。所以修改代码所以改变这一行:- final DatabaseReference mostafa = ref.child(uid).child('saldo2');
标签: android firebase firebase-realtime-database firebase-authentication