提问者:小点点

如何将Firebase上下文设置为使用数据库


我刚刚将Firebase数据库添加到我的应用程序中,当调用活动时(用户登录后)我收到致命错误

 import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    import com.firebase.client.Firebase;
    import com.google.firebase.FirebaseApp;
    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.auth.FirebaseUser;
    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;

    public class ProfileActivity extends AppCompatActivity implements View.OnClickListener {

    //firebase auth object
    private FirebaseAuth firebaseAuth;
    private Firebase firebase;

    //view objects
    private TextView textViewUserEmail;
    private TextView emailText;
    private Button buttonLogout,button2;
    private EditText nameEdit, ageEdit;
    private DatabaseReference mRootRef;
    private Firebase myFirebaseRef = new          Firebase("https://********************.com");



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


       //Previous versions of Firebase
        firebase.setAndroidContext(this);

        //Newer version of Firebase
        if(!FirebaseApp.getApps(this).isEmpty()) {
            FirebaseDatabase.getInstance().setPersistenceEnabled(true);
        }


        // remove title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_profile);


        //initializing firebase authentication object
        firebaseAuth = FirebaseAuth.getInstance();

        //if the user is not logged in
        //that means current user will return null
        if(firebaseAuth.getCurrentUser() == null){
            //closing this activity
            finish();
            //starting login activity
            startActivity(new Intent(this, LoginActivity.class));
        }

        //getting current user
        FirebaseUser user = firebaseAuth.getCurrentUser();



        //initializing views
        textViewUserEmail = (TextView) findViewById(R.id.textViewProfile);
        emailText = (TextView) findViewById(R.id.emailEditText);
        nameEdit = (EditText) findViewById(R.id.entername);
        ageEdit = (EditText) findViewById(R.id.ageedit);
        buttonLogout = (Button) findViewById(R.id.buttonLogout);
        button2 = (Button) findViewById(R.id.button2);
        mRootRef = FirebaseDatabase.getInstance().getReference();

        //displaying logged in user name
        textViewUserEmail.setText("Welcome To Your Profile");
        emailText.setText(user.getEmail());

        //adding listener to button
        buttonLogout.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        //if logout is pressed
        if(view == buttonLogout){
            //logging out the user
            firebaseAuth.signOut();
            //closing activity
            finish();
            //starting login activity
            startActivity(new Intent(this, LoginActivity.class));
        }

        if (view == button2) {

            myFirebaseRef.setValue(nameEdit.getText().toString());
            myFirebaseRef.setValue(ageEdit.getText().toString());

            finish();

            startActivity(new Intent(this, Main2Activity.class));
        }
    }

    }

抛出的异常是:

我不知道我做错了什么。非常感谢任何帮助。谢谢。


共1个答案

匿名用户

对于新版本或旧版本,您需要首先设置

Firebase.setAndroidContext(getApplicationContext());

然后您可以移动以启用或禁用持久性