2017-08-01 8 views
0

次のコードを使用してアプリの削除ボタンを押すと、firebaseデータベースで値が削除されますが、アプリがクラッシュします。またremoveValue()を使用するとFirebaseアプリがクラッシュする

mSingleRemoveBtn.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View view) 
      { 
       if(mPostKey!=null) 
       { 
        System.out.println("The key is " + mPostKey); 

        mDatabase.child(mPostKey).removeValue(); 
        Intent mainIntent = new Intent(BlogSingleActivity.this, MainActivity.class); 
startActivity(mainIntent); 

       } 
       else 
       { 
        System.out.println("The key is empty"); 
       } 

      } 

iは削除 "mDatabase.child(mPostKey).removeValueを();"、アプリは正常に動作していますが、明らかに私のデータベースからエントリを削除していません。

LOGCAT

08-01 19:42:51.093 32536-32536/com.vks_apps.blogs I/System.out: The key is -KqT82kPqOE_iq0UKHnm 

                   --------- beginning of system 
08-01 19:42:51.129 32536-4494/com.vks_apps.blogs V/FA: Inactivity, disconnecting from the service 
08-01 19:42:51.131 32536-32536/com.vks_apps.blogs D/AndroidRuntime: Shutting down VM 
08-01 19:42:51.132 32536-32536/com.vks_apps.blogs E/UncaughtException: java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() 
                      at com.google.firebase.database.DatabaseReference.child(Unknown Source) 
                      at com.vks_apps.blogs.BlogSingleActivity$1.onDataChange(BlogSingleActivity.java:88) 
                      at com.google.android.gms.internal.zzbmz.zza(Unknown Source) 
                      at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source) 
                      at com.google.android.gms.internal.zzboc$1.run(Unknown Source) 
                      at android.os.Handler.handleCallback(Handler.java:751) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:6077) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
08-01 19:42:51.135 32536-4494/com.vks_apps.blogs D/FA: Logging event (FE): _ae, Bundle[{_o=crash, _sc=BlogSingleActivity, _si=-4635728123048285128, timestamp=1501596771132, fatal=1}] 
08-01 19:42:51.157 32536-4494/com.vks_apps.blogs V/FA: Using measurement service 
08-01 19:42:51.157 32536-4494/com.vks_apps.blogs V/FA: Connecting to remote service 

                 --------- beginning of crash 
08-01 19:42:51.378 32536-32536/com.vks_apps.blogs E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: com.vks_apps.blogs, PID: 32536 
                    java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() 
                     at com.google.firebase.database.DatabaseReference.child(Unknown Source) 
                     at com.vks_apps.blogs.BlogSingleActivity$1.onDataChange(BlogSingleActivity.java:88) 
                     at com.google.android.gms.internal.zzbmz.zza(Unknown Source) 
                     at com.google.android.gms.internal.zzbnz.zzYj(Unknown Source) 
                     at com.google.android.gms.internal.zzboc$1.run(Unknown Source) 
                     at android.os.Handler.handleCallback(Handler.java:751) 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                     at android.os.Looper.loop(Looper.java:154) 
                     at android.app.ActivityThread.main(ActivityThread.java:6077) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
08-01 19:42:51.445 32536-5218/com.vks_apps.blogs I/FirebaseCrash: Sending crashes 
08-01 19:42:52.021 32536-5218/com.vks_apps.blogs I/FirebaseCrash: Response code: 200 
08-01 19:42:52.023 32536-5218/com.vks_apps.blogs I/FirebaseCrash: Report sent with crash report id: 6e22679504000000 
+0

スタックトレースの問題の原因を考えれば、コードに 'BlogSingleActivity.java:88'を指摘できますか? –

+0

Vipul、あなたの他の質問へのリンクでコメントをスパムしないでください。あなたはいくつかの場所、ここと答えを以下にしました。それは他のユーザーや私たちのルールに対して迷惑です。誰かがあなたの他の質問を見つけたいと思えば、それらはあなたのプロフィールにリストされているすべてを見ることができます。 –

答えて

1

あなたはサイス、Can't pass null for argument 'pathString' in child()をlogcatように、これはこのコード行で何かがnullであることを意味します

mDatabase.child(mPostKey).removeValue(); 

nullになることができる唯一のことはmPostKeyです。 removeValue()メソッドを使用する前にnullityを確認してください。

if(mPostKey != null) { 
    mDatabase.child(mPostKey).removeValue(); 
} 

また、Firebaseデータベースからレコードを削除するには、mPostKeyがnullでないことを確認してください。 nullがnullになった場所を参照してください。

logcat -KqT82kPqOE_iq0UKHnmmPostKeyが表示された更新された質問を見ると、BlogSingleActivityの88行目で発生したエラーが問題でした。問題は実際には、child()メソッドにnull値を渡したため、が再度使用されてアプリがクラッシュするという88行目の問題です。 mPostKey != nullが追加されました。

希望します。

0

コールスタックでは、問題がBlogSingleActivity$1.onDataChange()にあることがわかります。データベースを呼び出し、空の値をchild()に渡します。

+0

それは問題です...値はnullではありません...それでもこのエラーが発生しています。 –

+0

'BlogSingleActivity.java:88'のエラーメッセージが表示されたら、空の値を' child() 'に渡しています。エラーメッセージに同意することは、私を非常に遠くまで受け入れたことはありません。しかし、[問題を再現する最小限のコード](http://stackoverflow.com/help/mcve)(リンクを読む、それは非常に便利です)を見ずに、あなたをさらに助けるのは難しいでしょう。 –

+0

私はコードとログキャットを更新しました。参照してください –

関連する問題