클릭하면 Firebase 데이터베이스에서 항목을 제거하는 데 약간의 문제가 있습니다. 버튼을 클릭하면 해당 데이터베이스의 모든 항목이 삭제됩니다.Firebase에서 단일 항목 제거
관련 코드는 다음과 같습니다. 어떤 도움을 많이 주시면 감사하겠습니다!
private static final String FIREBASE_URL = "https://athenajs.firebaseio.com/favourites";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Firebase.setAndroidContext(this);
Intent in = getIntent();
// Get JSON values from previous intent
final String link = in.getStringExtra(KEY_LINK);
firebaseRef = new Firebase(FIREBASE_URL).child("link");
vib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
cardView = (CardView) findViewById(R.id.cv);
rv = (RecyclerView) findViewById(R.id.rv);
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setTag(1);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int status = (Integer) view.getTag();
if (status == 1) {
fab.setImageResource(R.drawable.ic_favorite_white_48dp);
Snackbar.make(view, "Added to favourites!", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
view.setTag(0);
firebaseRef.push().setValue(link);
} else {
fab.setImageResource(R.drawable.ic_favorite_border_white_48dp);
Snackbar.make(view, "Removed from favourites!", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
view.setTag(1);
firebaseRef.removeValue(null);
}
}
});
'removeValue()'를 호출하면 해당 위치의 모든 데이터가 제거됩니다. 귀하의 경우에는'/ links'가 될 것 같습니다. 해당 위치에서 특정 데이터를 제거하려면'firebaseRef.child ("keyOfTheChildToRemove"). removeValue()'와 같은 작업을 수행해야합니다. –
알았습니다! 설명해 주셔서 감사합니다! :) –