新しい認証ユーザごとに事前定義されたFirebaseデータベースを作成する方法は誰でも手伝ってください。基本的に、新しいuidごとにあらかじめ定義された値を持つデータベースを作成します。 私はアプリケーションの最初の実行で一度だけ発生する必要があります。Androidは初回起動時にfirebaseデータベースを初期化します
私のアプリケーションは現在、構造化されたデータベースを使用して問題なく実行しています...しかし、私の代わりにそのデータベースを作成しようとアプリケーションを作った後、私はNull例外を受け取り始めます。
これは、アプリケーションを最初に実行した直後にエラーが発生し、Googleのログインメッセージが表示されるか、認証が行われる前にエラーが発生するセクションの一部です。アプリケーションで次のセクションが読み込まれ、NULLが返されます。
BluetoothStat.child("BluetoothStat").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
String value = dataSnapshot.getValue(String.class);
bluetoothStatus.setText(value);
if (value.equals("ON")){
bConnect.setBackgroundResource(R.drawable.bluetooth_on);
bluetoothBStatus = true;
}
else if (value.equals("OFF")){
bConnect.setBackgroundResource(R.drawable.bluetooth_off);
bluetoothBStatus = false;
}
}
これは
userUID = firebaseUser.getUid();
Engine = myRef.child("Users").child(userUID).child("Engine");
EngineStat = myRef.child("Users").child(userUID).child("EngineStat");
Bluetooth = myRef.child("Users").child(userUID).child("Bluetooth");
BluetoothStat = myRef.child("Users").child(userUID).child("BluetoothStat");
Doors = myRef.child("Users").child(userUID).child("Doors");
DoorsStat = myRef.child("Users").child(userUID).child("DoorsStat");
HeadLights = myRef.child("Users").child(userUID).child("HeadLights");
HeadLightsStat = myRef.child("Users").child(userUID).child("HeadLightsStat");
AutoLights = myRef.child("Users").child(userUID).child("AutoLights");
AutoLightsStat = myRef.child("Users").child(userUID).child("AutoLightsStat");
SystemStat = myRef.child("Users").child(userUID).child("SystemStat");
KeyLess = myRef.child("Users").child(userUID).child("KeyLess");
ApplicationStat = myRef.child("Users").child(userUID).child("ApplicationStat");
ScreenMode = myRef.child("Users").child(userUID).child("ScreenMode");
InternetStat = myRef.child("Users").child(userUID).child("InternetStat");
Application= myRef.child("Users").child(userUID).child("Application");
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ramir.carhandcontroller, PID: 14759
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ramir.carhandcontroller/com.example.ramir.carhandcontroller.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.DatabaseReference com.google.firebase.database.DatabaseReference.child(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.DatabaseReference com.google.firebase.database.DatabaseReference.child(java.lang.String)' on a null object reference
at com.example.ramir.carhandcontroller.MainActivity.onCreate(MainActivity.java:165)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
「BluetoothStat」の価値を教えてもらえますか? MainActivity.javaの165行目には何がありますか? –