파이어베이스를 사용하여 Java에서 값을 고정 시키려고했는데 전역 변수를 업데이트하지 않습니다. onStart에서 EventListener를 호출하면 변수 (60)의 올바른 값을 성공적으로 표시합니다. 내가 10을 늘려야 할 때 - 버튼 클릭으로 - 그것은 나에게 0안드로이드 : 파이어베이스 번호 증가
long value;
@Override
protected void onStart() {
super.onStart();
final TextView mValue = (TextView) findViewById(R.id.some_textview);
mRef = new Firebase(some_correct_url);
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
value = (long) dataSnapshot.getValue();
mValue.setText(value+"");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
를 표시하고 버튼을 클릭하면 다음과 같은 기능은 그래서 전부를
public void addTen(View view) {
mRef = new Firebase(my_private_url);
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
value =(long) dataSnapshot.getValue();
value = value + 10;
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
mRef.setValue(value);
}
를 호출되고 첫 번째 부분은 변수의 올바른 값을 검색하지만 두 번째 부분은 올바른 값을 증가시키지 않습니다. 미리 감사드립니다!
편집 : 그런데 나는 다음과 같은 중포 기지-규칙을 설정 :
{
"rules": {
".read": "true",
".write": "true"
}
}
이 개발 시간입니다.
무슨 뜻입니까 ** 증가하지 않습니다 ** 로그에 U 값을 인쇄했거나 UI에 값을 업데이트 했습니까? – Kathi
예 값을 디버깅 중이었고 첫 번째 부분 인 onStart에서 올바르게 표시되지만 두 번째 부분에서는 addTen 함수에서 전역 초기화가 0 인 값을 사용합니다. – Michael
잘못된 값으로 시작하지만 증가합니다. 0부터 시작하지만 60에서 시작해야합니다 (firebase의 값) – Michael