Hallo, ich habe eine frühere Frage zum Anzeigen eines Bildes mit Base64 aus meiner Firebase-Datenbank gestellt. Es wurde empfohlen, Firebase-Speicher zu verwenden. Ich habe meinen Code überarbeitet und alles in den Firebase-Speicher und in die Datenbank geladen, wie es sollte. Das Problem, das ich habe, ist, wenn ich die Daten speichere, die nichts in meiner recyclerview auffüllt. Alles ist leer.Anzeigen von Firebase-Speicherabbildern in einem RecyclerView
Jede Hilfe, die Sie mir zur Verfügung stellen können, um dies zur Arbeit zu bringen, wäre großartig. Vielen Dank.
EDIT: In meiner Aktivitätsklasse rufe ich einen Button clicklistener auf, um die Kamera zu aktivieren. Sobald das Bild aufgenommen wurde, wird es in Firebase Storage gespeichert. Dann lade ich das Bild von Storage herunter und zeige es in einer Recycleransicht an. Ich verstehe den Upload-Teil, aber ich habe Schwierigkeiten, den Download- und Anzeigeteil zu verstehen. Vielen Dank.
viewholder: bind Methode
public void bind (ImageProgress progress){
Glide.with(activity).load("").into(image);
}
}
Adapter
@Override
public ProgressViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
return new ProgressViewHolder(activity, activity.getLayoutInflater().inflate(R.layout.weight_progress_list, parent, false));
Hauptaktivitätsklasse
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.weight_progress);
saveButton = (Button) findViewById(R.id.saveButton);
progressStatusEditText = (EditText) findViewById(R.id.progressStatusEditText);
progressList = (RecyclerView) findViewById(R.id.progressList);
mImageButton = (ImageButton) findViewById(R.id.takePictureButton);
capturedImage=(ImageView)findViewById(R.id.capturedImageView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
progressList.setHasFixedSize(false);
progressList.setLayoutManager(layoutManager);
//take picture button
mImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openCamera();
}
});
mDatabaseReference = database.getReference("Progress");
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//get current user
FirebaseUser user =FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
ImageProgress progress = new ImageProgress(uid, progressStatusEditText.getText().toString());
mDatabaseReference.push().setValue(progress);
progressStatusEditText.setText("");
}
});
}
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Uri cameraImageURI = data.getData();
//reference where images will be stored
mStorageReference = storage.getReference("Progress Images");
//reference to store file
final StorageReference cameraImageRef = mStorageReference.child(cameraImageURI.getLastPathSegment());
//upload to firebase storage
cameraImageRef.putFile(cameraImageURI)
.addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl = taskSnapshot.getDownloadUrl();
progressStatusEditText.setText(downloadUrl.toString());
}
});
}
Gut zu höre, dass du zu Firebase Storage gewechselt bist. Das sollte viel besser skalieren. Aber hier gibt es zu viel Code, um schnell zu helfen. Sie scheinen Bilder hochzuladen, Knopfklicks zu handhaben, aus der Datenbank zu lesen und vieles mehr. Reduziere dies auf den [Mindestcode, der benötigt wird, um das Problem zu reproduzieren] (http://stackoverflow.com/help/mcve) und wir haben eine bessere Chance, dir helfen zu können. –
@FrankvanPuffelen Hallo Frank, ich habe meinen Code bearbeitet um hoffentlich wo mein Problem liegt. Ich habe eine weitere Beschreibung meines Problems hinzugefügt. Vielen Dank im Voraus für Ihre Hilfe. – hozdaman
@FrankvanPuffelen Hallo, ich habe mich gefragt, ob du eine Chance hast, meinen bearbeiteten Code anzusehen? Vielen Dank. – hozdaman