2016-11-25 10 views
0

removeValue()でFirebaseDatabaseからノードを削除しようとしましたが、機能しません。removeValue()を使用してFirebaseDatabaseからノードを削除できません

以下のコードを使用して、新しいアクティビティでreccllerviewのrefをonclickで渡します。

 final DatabaseReference itemRef = getRef(position); 
      viewHolder.mView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
       // itemRef.removeValue(); 
        Intent intentshowall2one= new Intent(Showcase.this, ShowProduct.class); 
        intentshowall2one.putExtra("S2Skey", itemRef.toString()); 
        Showcase.this.startActivity(intentshowall2one); 

や他の活動に

key = myIntent.getStringExtra("S2Skey"); 
    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReferenceFromUrl(key); 
mDatabase.removeValue().addOnSuccessListener(new OnSuccessListener<Void>() { 
    @Override 
     public void onSuccess(Void aVoid) { 
     Toast.makeText(getApplicationContext(), "deleted ", Toast.LENGTH_SHORT) 
            .show(); 

      } 
     }).addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Uh-oh, an error occurred! 
      Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT) 
       .show(); 
       } 
     }); 

答えて

0

あなたの答えは、Lutaaya Huzaifah IdrisとVignesh Kumarです。私は私のパスの中にギリシャ語を使用していたのでエラーが発生していました。すべて正常にダウンロードして、他の活動への参照が変更されました。それはまた奇妙です。

0

あなたのボタンまたは任意のリスナーでこれを試してみてください:

 mDatabase.child(key).removeValue(); 
      Toast.makeText(getApplicationContext(),"The Post has been removed Successfully ",Toast.LENGTH_LONG).show(); 

またはこの

mDatabase.chlid(key).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() { 
     @Override 
      public void onSuccess(Void aVoid) { 
      Toast.makeText(getApplicationContext(), "deleted ", Toast.LENGTH_SHORT) 
             .show(); 

       } 
      }).addOnFailureListener(new OnFailureListener() { 
       @Override 
       public void onFailure(@NonNull Exception exception) { 
        // Uh-oh, an error occurred! 
       Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT) 
        .show(); 
        } 
      }); 
を使用

の代わりに:

mDatabase.removeValue().addOnSuccessListener(new OnSuccessListener<Void>() { 
    @Override 
     public void onSuccess(Void aVoid) { 
     Toast.makeText(getApplicationContext(), "deleted ", Toast.LENGTH_SHORT) 
            .show(); 

      } 
     }).addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Uh-oh, an error occurred! 
      Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT) 
       .show(); 
       } 
     }); 

はそれがあなたのために

0

の作品ホープは、あなたが値を削除する前に、適切な参照を与えていることを確認してください。

OnSuccessListenerではなくCompletionリスナーを使用すると、Completionリスナーによって正確な結果が得られます。

関連する問題