【问题标题】:update database firebase realtime实时更新数据库firebase
【发布时间】: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


【解决方案1】:

你需要更改这行代码:

int saldo2 = dataSnapshot.getValue(Integer.class);

int saldo2 = dataSnapshot.child("saldo2").getValue(Integer.class);

希望对你有帮助。

【讨论】:

  • 嗨,亚历克斯,还记得我吗? :) 你能看看我的新问题吗:stackoverflow.com/questions/44743530/… 即使设置了 +50 赏金,也没有人给出答案......
  • 是的,我记得,但不幸的是我不懂 Javascript。对不起。
【解决方案2】:

试试这行代码:-

   int saldo2 = Integer.valueof(dataSnapshot.getValue().toString());

【讨论】:

  • 之前的错误消失了,但现在我有了这个:java.lang.NumberFormatException: For input string: "{saldo2=0}"
  • @ChrisDopazo dataSnapshot.getValue().toString() 将 {saldo2=0} 作为字符串返回,因此您无法将其转换为整数。所以试试这一行:- final DatabaseReference mostafa = ref.child(uid).child('saldo2');
  • 第一次我赢是有效的,但第二次因为这个错误而崩溃:java.lang.NumberFormatException:对于输入字符串:“{saldo2=100}”(每次赢得 100 分都是添加)
猜你喜欢
  • 1970-01-01
  • 2021-10-04
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
相关资源
最近更新 更多