Firebase存储无法创建下载网址。怎么了?

时间:2019-01-04 21:01:23

标签: android firebase firebase-storage

请帮助我。我无法创建下载URL Firebase存储。我想将图片上传到Firebase存储时,将URL保存到Firebase数据库。我尝试了很多方法。但是我没有。 Firebase数据库的Web上没有URL。

它显示出这个样子; imageUrl:"images/67824cbe-916e-4c74-82df-44227aa1d125"。其名称为存储图片名称。 我的上载Firebase存储和Firebase数据库活​​动在这里;

 package com.eraykalelioglu.ki_ta;
 //imports here

public class BookActivity extends AppCompatActivity {

EditText editTextisim;
EditText editTextyazar;
Button buttonkitabikaydet;
Spinner spinnerGenres;
ImageView imageViewkitapkapakresmi;
DatabaseReference databaseKitaplar;
private Uri filePath;
private final int PICK_IMAGE_REQUEST = 1;
FirebaseStorage storage;
StorageReference storageReference;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book);
    databaseKitaplar = FirebaseDatabase.getInstance().getReference("Kitaplar");
    editTextisim = (EditText) findViewById(R.id.editTextisim);
    editTextyazar = (EditText) findViewById(R.id.editTextyazar);
    imageViewkitapkapakresmi = (ImageView) findViewById(R.id.imageViewkitapkapakresmi);
    buttonkitabikaydet = (Button) findViewById(R.id.buttonkitabikaydet);
    spinnerGenres = (Spinner) findViewById(R.id.spinnerGenres);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    storage = FirebaseStorage.getInstance();
    storageReference = storage.getReference("images/");
    buttonkitabikaydet.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Kaydet();

        }
    });

    imageViewkitapkapakresmi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            chooseImage();
        }
    });

}
private void Kaydet(){
    imageViewkitapkapakresmi.setDrawingCacheEnabled(true);
    imageViewkitapkapakresmi.buildDrawingCache();
    Bitmap bitmap = ((BitmapDrawable) imageViewkitapkapakresmi.getDrawable()).getBitmap();
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
    byte[] data = byteArrayOutputStream.toByteArray();
    String mImageUrl = "images/" +UUID.randomUUID().toString();
    final StorageReference storageReference = storage.getReference(mImageUrl);
    UploadTask uploadTask = storageReference.putBytes(data);
    uploadTask.addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(BookActivity.this, "Yükleme Başarısız"+e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            Task<Uri> downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl();
            Log.d("onSuccess", "" + downloadUrl);





        }
    });

    String isim = editTextisim.getText().toString().trim();
    String yazar = editTextyazar.getText().toString().trim();
    String genre = spinnerGenres.getSelectedItem().toString();
    if (!TextUtils.isEmpty(isim) && !TextUtils.isEmpty(yazar)){
       String id = databaseKitaplar.push().getKey();
       Kitaplar kitaplar = new Kitaplar (id, isim, yazar, genre, mImageUrl);
       databaseKitaplar.child(id).setValue(kitaplar);
       Toast.makeText(this, "Kitabınız Başarıyla Kaydedildi", Toast.LENGTH_LONG).show();
       startActivity(new Intent(BookActivity.this, Listesayfahali.class));
    } else {
        Toast.makeText(this, "Kitabın İsmi ve Yazarı Doldurulması Gereklidir", Toast.LENGTH_SHORT).show();
    }

}



private void chooseImage(){
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Kitaba ait resmi seçin"), PICK_IMAGE_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null){
        filePath = data.getData();


        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
            imageViewkitapkapakresmi.setImageBitmap(bitmap);
        }
        catch (IOException e){
            e.printStackTrace();
        }
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menuLogout:
            FirebaseAuth.getInstance().signOut();
            finish();
            startActivity(new Intent(BookActivity.this, MainActivity.class));
            break;
    }
    switch (item.getItemId()){
        case R.id.menuKitaplar:
            startActivity(new Intent(BookActivity.this, Listesayfahali.class));
    }
    return true;
}
}

我的数据库活动在这里;

 package com.eraykalelioglu.ki_ta;

 public class Kitaplar {

String kitaplarId;
String kitaplarisim;
String kitaplaryazar;
String kitaplarGenre;
String mImageUrl;

public Kitaplar() {

}

public Kitaplar(String kitaplarId, String kitaplarisim, String kitaplaryazar, String kitaplarGenre, String imageUrl) {
    this.kitaplarId = kitaplarId;
    this.kitaplarisim = kitaplarisim;
    this.kitaplaryazar = kitaplaryazar;
    this.kitaplarGenre = kitaplarGenre;
    mImageUrl =imageUrl;

}

public String getKitaplarId() {
    return kitaplarId;
}

public String getKitaplarisim() {
    return kitaplarisim;
}

public String getKitaplaryazar() {
    return kitaplaryazar;
}

public String getKitaplarGenre() {
    return kitaplarGenre;
}

public String getImageUrl() {return mImageUrl ;  }

public void setImageUrl(String imageUrl){ this.mImageUrl= imageUrl; }
}`

0 个答案:

没有答案