我刚刚将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));
}
}
}
抛出的异常是:
我不知道我做错了什么。非常感谢任何帮助。谢谢。
对于新版本或旧版本,您需要首先设置
Firebase.setAndroidContext(getApplicationContext());
然后您可以移动以启用或禁用持久性