-2
我是Firebase的初學者。我試圖存儲一些數據。當我按下按鈕時,它會顯示java.lang.NullPointerException。這是我遇到的錯誤。請幫我解決問題,因爲我前幾天已經在這裏停留了。在聲明Firebase的DatabaseReference後按下按鈕時獲取NullPointerException
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.google.online_mobile_flexi_parking, PID: 10380
java.lang.NullPointerException
at com.google.online_mobile_flexi_parking.RegisterPage$1.onClick(RegisterPage.java:90)
at android.view.View.performClick(View.java:4444)
at android.view.View$PerformClick.run(View.java:18440)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5028)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
這裏是我的代碼
public class RegisterPage extends AppCompatActivity {
private Firebase mRef;
Context ctx = this;
EditText Password, Phone, Email, IdentityCard, FullName, CarPlate;
String registerpassword, phone, email, identitycard, fullname, carplate;
Button register;
private Firebase userRef;
private Firebase firebaseAuth;
private Session session;
DatabaseReference mDatabase;
FirebaseUser user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_page);
Password = (EditText) findViewById(R.id.txtRegisterPassword);
Phone = (EditText) findViewById(R.id.txtPhone);
Email = (EditText) findViewById(R.id.txtEmail);
IdentityCard = (EditText) findViewById(R.id.txtICardNo);
FullName = (EditText) findViewById(R.id.txtFullName);
CarPlate = (EditText) findViewById(R.id.txtCarPlate);
register = (Button) findViewById(R.id.btnRegister);
SharedPreferences prefs = ctx.getSharedPreferences("register", MODE_PRIVATE);
email = prefs.getString("email", "");
registerpassword = prefs.getString("password", "");
Email.setText(email);
Password.setText(registerpassword);
mDatabase = FirebaseDatabase.getInstance().getReference();
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phone = Phone.getText().toString();
identitycard = IdentityCard.getText().toString();
fullname = FullName.getText().toString();
carplate = CarPlate.getText().toString();
Account account = new Account(email, fullname, Integer.valueOf(phone), carplate, Integer.valueOf(identitycard));
mDatabase.child(user.getUid()).setValue(account);
Toast.makeText(getBaseContext(), "Register Successfully...", Toast.LENGTH_LONG).show();
Intent in = new Intent(RegisterPage.this, MainActivity.class);
startActivity(in);
finish();
}
});
}
public void onclickCancelRegister2(View view) {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
user.delete()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(RegisterPage.this, "Cancel Registration", Toast.LENGTH_SHORT).show();
startActivity(new Intent(RegisterPage.this, MainActivity.class));
finish();
} else {
Toast.makeText(RegisterPage.this, "Failed to delete your account!", Toast.LENGTH_SHORT).show();
}
}
});
}
}}
什麼是線90? –
mDatabase.child(user.getUid())。setValue(account); – Jane
從您的程序粘貼到整個程序中。因爲錯誤是在線90 –