Ich verwende FirebasaRecyclerAdapter, um eine Liste der Posts anzuzeigen, die ich in meiner Firebase-Konsole erhalten habe. Ich möchte jede Postreferenz erhalten, um sie löschen zu können. Ich kann schon die URL bekommen:Android FirebaseRecyclerAdapter Objektverweis abrufen und löschen
Ich bekomme die Zeichenfolge postReference und sende es an meine ViewHolder. Dieser viewHolder ist der, mit dem ich meine Posts im Feed anzeigen kann. Wenn der Benutzer auf den Posten klickt, kann er sich die Post Details in einem anderen Fragment (zu dem schicke ich die postReference string:
Bundle bundle = new Bundle();
bundle.putSerializable("post", post);
bundle.putString("postReference", postReferece);
PostDetailFragment postDetailFragment = new PostDetailFragment();
postDetailFragment.setArguments(bundle);
FragmentTransaction fragmentTransaction = ((AppCompatActivity) context).getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_left_enter, R.anim.slide_left_exit, R.anim.slide_right_enter, R.anim.slide_right_exit);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.feed_container, postDetailFragment, "PostDetailFragment").commit();
Im PostDetailFragment, ich möchte, dass die Post löschen, wenn Löschtaste angeklickt wird, so:
private View.OnClickListener deleteListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
String postReference = bundle.getString("postReference");
FirebaseDatabase.getInstance().getReference(postReference).removeValue();
((FeedActivity)context).getSupportFragmentManager().popBackStack();
}
};
Mein Problem ist, dass meine Firebase "postReference" string nicht akzeptiert, heißt es:
Invalid Firebase Database path: https://(myapp).firebaseio.com/users/(userkey)/posts/KIJ999. Firebase Database paths must not contain '.', '#', '$', '[', or ']'
Irgendwelche Gedanken auf diese
?
Werfen Sie einen Blick auf diese: http://stackoverflow.com/questions/41076398/invalid-firebase-path-com-firebase-paths-must-not-contain – Eknoes
Ich googelte mein Problem, bevor Sie diese Frage stellen. Ich habe das offensichtlich versucht, weil es der erste Link ist, den Google uns gibt. Es löst mein Problem nicht und es ist Zeitverschwendung für jeden, der zu dieser Frage kommen könnte. – Rob