Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
samesdavis

Java Firebase - Enviar foto e recuperar link para download

Recommended Posts

Olá pessoal,

Estou precisando de descobrir onde está o erro no meu código abaixo onde a ideía é se eu selecionar uma foto, eu envio essa foto para o Storage do Firebase e logo em seguida tenho de recuperar o link para de download da foto para eu gravar no campo de imagem da classe de clientes.

O problema que está acontecendo é que mesmo tendo a foto o onSuccess(UploadTask.TaskSnapshot taskSnapshot) não está funcionando

 

 

public class ClientescadActivity extends AppCompatActivity  {

    private Toolbar toolbarcadcli;
    private TextInputEditText edtNomeCli;
    private TextInputEditText edtTelefoneCli;
    private Clientes clientes;
    private ImageView imgCli;
    private Uri  filepath;
    private final int REQUEST_CODE = 1234;
    public static final String FB_STORAGE_PATH = "image/";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_clientescad );
        toolbarcadcli = findViewById( R.id.toolbarcadcli );
        setSupportActionBar( toolbarcadcli );

        edtNomeCli = findViewById( R.id.edtNomeCli );
        edtTelefoneCli = findViewById( R.id.edtTelefoneCli );
        edtTelefoneCli.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
        imgCli = findViewById(R.id.imgCli);

        imgCli.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ChooseImage();
            }


        });

        RealTime.InicializaFirebase (getApplicationContext(), "Clientes");

    }

    private void ChooseImage()
    {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent,"Selecione uma foto"),REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == REQUEST_CODE && resultCode == RESULT_OK  &&  data != null  && data.getData() != null)
        {
            filepath = data.getData();
            try
            {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),filepath) ;
                imgCli.setImageBitmap(bitmap);

            }catch (FileNotFoundException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

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

    private boolean ValidaCampos()
    {
        boolean res;

        String nome = edtNomeCli.getText().toString().trim();
        String phone = edtTelefoneCli.getText().toString().trim();

        clientes.setNome(nome);
        clientes.setTelefone(phone);

        if (res = IsFieldEmpty( nome ))
        {
            AlertDialog.Builder dlg = new AlertDialog.Builder(this);
            dlg.setTitle(R.string.title_atencao);
            dlg.setMessage(R.string.message_cliente_obrigatorio);
            dlg.setNeutralButton("Ok",null);
            dlg.show();
            edtNomeCli.requestFocus();
        }

        return res;

    }

    private void SalvarDados()
    {
        clientes = new Clientes();

        if (ValidaCampos() == false)
        {

            try
            {
                StorageReference ref;
                clientes.imagem = "https://firebasestorage.googleapis.com/v0/b/salaobeleza-29ca9.appspot.com/o/image%2Fphotoprofile.png?alt=media&token=ff42f8a8-1a21-43c1-9251-6b227a99c0cd";
                if(filepath != null)
                {
                    ref = RealTime.storageReference.child(FB_STORAGE_PATH + System.currentTimeMillis() + "." + getImageExt(filepath));
                    ref.putFile(filepath)
                            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                                @Override
                             public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                    clientes.imagem = taskSnapshot.getDownloadUrl().toString();
                                }
                            });

                }
                String mId = RealTime.databaseReference.push().getKey();
                RealTime.databaseReference.child(mId).setValue(clientes);
                Toast.makeText(ClientescadActivity.this, R.string.message_cadasto_sucesso, Toast.LENGTH_SHORT).show();
                finish();
            }catch (Exception ex){

                AlertDialog.Builder dlg = new AlertDialog.Builder(this);
                dlg.setTitle(R.string.title_atencao);
                dlg.setMessage(ex.getMessage());
                dlg.setNeutralButton("Ok",null);
                dlg.show();

            }
        }
    }

    private boolean IsFieldEmpty(String valor)
    {
        boolean resultado = (TextUtils.isEmpty( valor ) || valor.trim().isEmpty());
        return resultado;
    }



    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.action_cli_cad_ok:
                SalvarDados();
                break;
            case R.id.action_cli_cad_remove:
                Toast.makeText( this, "Removendo...", Toast.LENGTH_SHORT ).show();
                break;
        }
        return super.onOptionsItemSelected( item );
    }


    public String getImageExt(Uri uri)
    {
        ContentResolver contentResolver = getContentResolver();
        MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
        return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri));
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×