Получение данных из базы Firebase - PullRequest
0 голосов
/ 25 февраля 2019

Вот мой код Android для извлечения данных из базы данных Firebase в реальном времени:

package com.example.firebaseapp;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import`enter code here` android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class MainActivity extends AppCompatActivity {

    Button f;
    TextView status;

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("light");

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        f=(Button)findViewById(R.id.button);
        status=(TextView) findViewById(R.id.lightstatus);

        myRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                String value = dataSnapshot.getValue(String.class);
                status.setText(value);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError){
                status.setText("Could not fetch data..");
            }
        });
    }

    public void lighton(View view){
        myRef.setValue(1);
    }

    public void lightoff(View view){
        myRef.setValue(0);
    }
}

Приложение компилируется правильно, но всякий раз, когда я его запускаю, приложение вылетает с сообщением об ошибке «К сожалению, приложение Firebaseостановился».Пожалуйста, помогите мне решить эту проблему.Вот фрагмент из моей базы данных: Database screenshot

1 Ответ

0 голосов
/ 25 февраля 2019

Измените строку на целое или длинное, поскольку значение освещения не является строкой.

public class MainActivity extends AppCompatActivity {</p>

<code>Button f;
TextView status;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    f = (Button)findViewById(R.id.button);
    status = (TextView) findViewById(R.id.lightstatus);

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef   = database.getReference("light");

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Integer value = dataSnapshot.getValue(Integer.class);
            status.setText(String.valueOf(value));
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError){
            status.setText("Could not fetch data..");
        }
    });
}

public void lighton(View view){
    myRef.setValue(1);
}

public void lightoff(View view){
    myRef.setValue(0);
  }

}
</code>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...