Запись в базу данных Firebase в реальном времени Cra sh android приложение - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь сделать простой код для записи в базу данных firebase в реальном времени. Однако при открытии операции, выполняющей запись в базу данных, приложение вызывает сбой. Это код, который я использую:

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class main_view extends AppCompatActivity {

    Button button = findViewById(R.id.button);

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

        FirebaseDatabase database = FirebaseDatabase.getInstance();
        final DatabaseReference mRef = database.getReference("message");



        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String messageValue = "Hello world";
                mRef.setValue(messageValue);

            }
        });
    }
}

Я понятия не имею, что здесь не так

Ответы [ 2 ]

0 голосов
/ 16 июня 2020
Button button = findViewById(R.id.button);

Эта строка может создать проблему, если вы напишете ее прямо под классом. Поместите его в onCreate ().

0 голосов
/ 16 июня 2020

Вы должны вызвать findViewById() в методе on onCreate после того, как макет был увеличен. Вы инициализируете кнопку переменной вне onCreate до того, как макет будет раздут, поэтому для нее установлено значение null.

Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String messageValue = "Hello world";
                mRef.setValue(messageValue);

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