

Luis Felipe Rebecca
Members-
Total de itens
23 -
Registro em
-
Última visita
Reputação
0 ComumSobre Luis Felipe Rebecca

-
Olá, Estou fazendo um aplicativo em android e me deparei com uma duvida na hora de salvar e exibir em uma lista, os usuários de um sistema. Basicamente o app por enquanto adiciona qualquer um que voce coloque o email correto e click para executar a ação de adicionar a contato, até ai ok! tudo funcionando. Agora estou precisando fazer com quem alguns usuários sejam adicionados a contatos logo que o usuário abre o app, fiz isso colocando esse método abaixo dentro do onCreate da activity principal, novamente tudo ok! Por algum motivo ele não cadastra os 3 usuários que pre-defini na variável, imagino que seja algo relacionado ao EventListener ou o while não esta rodando e executando todos os trechos. Obrigado desde já, fico no aguardo de uma solução! *Se o processor for feito manualmente, trocando o valor do contador manualmente para 1 ou 2 ou 3 e o while for trocado para "contador == 1 ou 2 ou 3 " o código executa com perfeição e cadastra os 3 contatos. private void abrirCadastroContato() { String emailContato; emailContato = "email"; int contador = 1; while (contador <=3) { if (contador == 1) { emailContato = "email1@email1.com.br"; } if (contador == 2) { emailContato = "email1@email1.com.br"; } if (contador == 3) { emailContato = "email1@email1.com.br"; } identificadorContato = Base64Custom.codificarBase64(emailContato); firebase = ConfiguracaoFirebase.getFirebase().child("usuarios").child(identificadorContato); firebase.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.getValue() != null) { //Recuperar dados do contato a ser adicionado Usuario usuarioContato = dataSnapshot.getValue(Usuario.class); //Recuperar identificador usuario logado (base64) Preferencias preferencias = new Preferencias(MainActivity.this); String identificadorUsuarioLogado = preferencias.getIdentificador(); firebase = ConfiguracaoFirebase.getFirebase(); firebase = firebase.child("contatos") .child(identificadorUsuarioLogado) .child(identificadorContato); Contato contato = new Contato(); contato.setIdentificadorUsuario(identificadorContato); contato.setEmail(usuarioContato.getEmail()); contato.setNome(usuarioContato.getNome()); firebase.setValue(contato); } else { Toast.makeText(MainActivity.this, "Usuário não possui cadastro.", Toast.LENGTH_LONG).show(); } } @Override public void onCancelled(DatabaseError databaseError) { } }); contador ++; } }
-
android Fazer a listagem de imagens do Firebase Storage em um fragment
Luis Felipe Rebecca postou um tópico no fórum Android
Olá, estou fazendo um projeto em Android e estou com algumas dificuldades em ralação a fazer uma listagem de imagens(Feed), onde as imagens são retiradas do firebase e são apresentadas em um fragment. Um esquema praticamente igual ao Instagram; Por enquanto estou tentando fazer a listagem somente das imagens, porem as imagens não aparecem já fiz diversos testes e queria saber aonde posso estar errando. A variável 'listaFeed' localizada no FeedFragment não apresenta valor nenhum, o que pode estar causando a não impressão dessas imagens; Segue abaixo os códigos usados para fazer a listagem. MainActivity.java(Trecho que publica a imagem no Firebase Storage): @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item_sair: deslogarUsuario(); return true; case R.id.item_adicionar: abrirCadastroContato(); return true; case R.id.item_configuracoes: return true; case R.id.item_pesquisar: return true; case R.id.item_camera: compartilharFoto(); return true; default: return super.onOptionsItemSelected(item); } } private void compartilharFoto() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, 1); } //GRAVAR IMAGEM @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); final Postagem postagem = new Postagem(); postagem.setIdUsuario(idUsuarioLogado); caminhoArquivo = data.getData(); if (requestCode == 1 && resultCode == RESULT_OK && data != null) { Bitmap imagem = null; try { imagem = MediaStore.Images.Media.getBitmap(getContentResolver(), caminhoArquivo); ByteArrayOutputStream stream = new ByteArrayOutputStream(); imagem.compress(Bitmap.CompressFormat.PNG, 75, stream); byte[] dadosImagem = stream.toByteArray(); SimpleDateFormat dateFormat = new SimpleDateFormat("ddmmaaaahhmmss"); String nomeImagem = dateFormat.format(new Date()); final StorageReference imagemRef = firebaseStorage .child("imagens") .child("postagens") .child(postagem.getId() + ".jpeg"); UploadTask uploadTask = imagemRef.putFile(caminhoArquivo); Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() { @Override public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception { if (!task.isSuccessful()) { throw task.getException(); } // Continue with the task to get the download URL return imagemRef.getDownloadUrl(); } }).addOnCompleteListener(new OnCompleteListener<Uri>() { @Override public void onComplete(@NonNull Task<Uri> task) { if (task.isSuccessful()) { Uri downloadUri = task.getResult(); postagem.setCaminhoFoto(downloadUri.toString()); if (postagem.salvar()) { Toast.makeText(MainActivity.this, "Sucesso ao salvar postagem!", Toast.LENGTH_SHORT).show(); } } } }); } catch (IOException e) { e.printStackTrace(); } } } FeedFragment.java(onde a listagem é exibida): public class FeedFragment extends Fragment { private RecyclerView recyclerFeed; private FeedAdapter feedAdapter; private List<Feed> listaFeed = new ArrayList<>(); private ValueEventListener valueEventListenerFeed; private DatabaseReference feedRef; private String idUsuarioLogado; public FeedFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_feed, container, false); Preferencias preferencias = new Preferencias(getActivity()); idUsuarioLogado = preferencias.getIdentificador(); feedRef = ConfiguracaoFirebase.getFirebase() .child("feed") .child(idUsuarioLogado); recyclerFeed = view.findViewById(R.id.recyclerFeed); feedAdapter = new FeedAdapter(listaFeed, getActivity()); recyclerFeed.setHasFixedSize(true); recyclerFeed.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerFeed.setAdapter(feedAdapter); return view; } private void listarFeed(){ valueEventListenerFeed = feedRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds: dataSnapshot.getChildren()){ listaFeed.add(ds.getValue(Feed.class)); } feedAdapter.notifyDataSetChanged(); } @Override public void onCancelled(DatabaseError databaseError) { } }); } @Override public void onStart() { super.onStart(); listarFeed(); Log.i("teste","teste"); } @Override public void onStop() { super.onStop(); feedRef.removeEventListener(valueEventListenerFeed); } } fragment_feed.xml(layout do fragment): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="android" xmlns:tools="tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".fragment.FeedFragment"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerFeed" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_purple"> </android.support.v7.widget.RecyclerView> </LinearLayout> FeedAdapter.java(Adapter para fazer a listagem): public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.MyViewHolder>{ private List<Feed> listaFeed; private Context context; public FeedAdapter(List<Feed> listaFeed, Context context) { this.listaFeed = listaFeed; this.context = context; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemLista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_postagem, parent, false); return new FeedAdapter.MyViewHolder(itemLista); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { Feed feed = listaFeed.get(position); // Log.i("listaFeedPosition","listaFeed: " + listaFeed.get(position)); Uri uriFotoPostagem = Uri.parse(feed.getFotoPostagem()); Glide.with(context).load(uriFotoPostagem).into(holder.fotoPostagem); } @Override public int getItemCount() { return listaFeed.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { ImageView fotoPostagem; public MyViewHolder(View itemView) { super(itemView); fotoPostagem = itemView.findViewById(R.id.image_lista_postagem); } } } Feed(model com os getter and setter): public class Feed { private String id; private String fotoPostagem; public Feed() { } public String getFotoPostagem() { return fotoPostagem; } public void setFotoPostagem(String fotoPostagem) { this.fotoPostagem = fotoPostagem; } public String getId() { return id; } public void setId(String id) { this.id = id; } } lista_conversa(layout da lista): <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image_lista_postagem" android:layout_width="match_parent" android:layout_height="300dp" android:scaleType="fitCenter" android:padding="8dp"/> </LinearLayout> </RelativeLayout>-
- android studio
- firebase
- (e mais 2 )
-
Erro ao usar metodo de login E-mail/Senha do firebase no Android Studio
Luis Felipe Rebecca postou um tópico no fórum Android
Galera estou tendo um problema já faz algum tempo e não estou conseguindo uma solução. Estou utilizando o Firebase como banco de dados e não estou conseguindo usar a autenticação dele. Fiz meus códigos com auxilio de alguns cursos online e ele está funcional, aparentemente, porem quando executo e dou inicio no processo de cadastro ele mostra a seguinte mensagem no Logcat e não registra o usuário no banco: Alguém teria alguma solução? 06-26 07:21:39.348 29507-29507/br.com.tecmafandroid.projeto.tecmaf W/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@da4f097 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found. 06-26 07:21:39.348 29507-29598/br.com.tecmafandroid.projeto.tecmaf W/GooglePlayServicesUtil: Google Play services out of date. Requires 12451000 but found 11975436 Não sei muito bem o q essa mensagem esta querendo dizer, já tentei modificar vários arquivos, mas por enquanto o "erro" persiste. Segue os trechos de código responsáveis pela autenticação no Firebase: -Activity de cadastro usuário package br.com.tecmafandroid.projeto.tecmaf.activity; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import br.com.tecmafandroid.projeto.tecmaf.R; import br.com.tecmafandroid.projeto.tecmaf.config.ConfiguracaoFirebase; import br.com.tecmafandroid.projeto.tecmaf.model.Usuario; public class CadastroUsuarioActivity extends AppCompatActivity { private EditText nome; private EditText email; private EditText senha; private Button botaoCadastrar; private Usuario usuario; private FirebaseAuth autenticacao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cadastro_usuario); nome = (EditText) findViewById(R.id.edit_cadastro_nome); email = (EditText) findViewById(R.id.edit_cadastro_email); senha = (EditText) findViewById(R.id.edit_cadastro_senha); botaoCadastrar = (Button) findViewById(R.id.bt_cadastro); botaoCadastrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { usuario = new Usuario(); usuario.setNome(nome.getText().toString()); usuario.setEmail(email.getText().toString()); usuario.setSenha(senha.getText().toString()); cadastrarUsuario(); } }); } private void cadastrarUsuario() { autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao(); autenticacao.createUserWithEmailAndPassword( usuario.getEmail(), usuario.getSenha() ).addOnCompleteListener(CadastroUsuarioActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()){ Toast.makeText(CadastroUsuarioActivity.this,"Sucessor ao cadastrar usuario",Toast.LENGTH_LONG).show(); }else { Toast.makeText(CadastroUsuarioActivity.this,"Erro ao cadastrar usuario",Toast.LENGTH_LONG).show(); } } }); } } -build.gradle: app apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "br.com.tecmafandroid.projeto.tecmaf" minSdkVersion 15 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-core:16.0.0' implementation 'com.google.firebase:firebase-database:15.0.0' implementation 'com.android.support:design:27.1.1' implementation 'com.github.rtoshiro.mflibrary:mflibrary:1.0.0' implementation 'com.google.firebase:firebase-auth:15.0.0' } apply plugin: 'com.google.gms.google-services' -Configuração do Firebase package br.com.tecmafandroid.projeto.tecmaf.config; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; public final class ConfiguracaoFirebase { private static DatabaseReference referenciaFirebase; private static FirebaseAuth autenticacao; public static DatabaseReference getFirebase(){ if (referenciaFirebase == null){ referenciaFirebase = FirebaseDatabase.getInstance().getReference(); } return referenciaFirebase; } public static FirebaseAuth getFirebaseAutenticacao(){ if (autenticacao == null){ autenticacao = FirebaseAuth.getInstance(); } return autenticacao; } } -Model usuário package br.com.tecmafandroid.projeto.tecmaf.model; public class Usuario { private String id; private String nome; private String email; private String senha; public Usuario(){ } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } } -
firebase Erro no apresentado no Logcat ao tentar cadastrar usuário no FirebaseAuth
Luis Felipe Rebecca postou um tópico no fórum Mobile
Ao tentar cadastrar novo usuário no Firebase através do próprio recurso de autenticação, aparece um erro no Logcat que faz com que o botão cadastrar não faça a ação: 06-21 12:25:48.635 16627-17650/br.com.whatsapp.projeto.whatsapp I/System.out: (HTTPLog)-Static: isSBSettingEnabled false (HTTPLog)-Static: isSBSettingEnabled false 06-21 12:25:49.755 16627-17650/br.com.whatsapp.projeto.whatsapp I/System.out: (HTTPLog)-Static: isSBSettingEnabled false (HTTPLog)-Static: isSBSettingEnabled false 06-21 12:35:19.215 16627-16633/br.com.whatsapp.projeto.whatsapp I/art: Debugger is no longer active Imagino que o problema seja das dependências ou de onde eu puxo o FirebaseAuth.-
- android
- androidstudio
-
(e mais 1 )
Tags:
-
Mudar label vertical do gráfico de barras - Charts.js
Luis Felipe Rebecca respondeu ao tópico de Luis Felipe Rebecca em HTML e CSS
Resolvido! -
Mudar label vertical do gráfico de barras - Charts.js
Luis Felipe Rebecca postou um tópico no fórum HTML e CSS
Bom dia, Sou novo em Charts.js e queria saber como mudo os label vertical do gráfico abaixo: Queria retirar o cifrão($) e mantar os dígitos. Segue link do gráfico: http://prntscr.com/jo0nph Obrigado desde já. -
Href para uma rota em JavaScript (laravel)
Luis Felipe Rebecca respondeu ao tópico de Luis Felipe Rebecca em Javascript
@FuckSystem function redirecionar(item) { location.href = '{{route('recebimento.dashboard')}}'; } Já consegui, era só colocar como faz para chamar uma rota normalmente. -
function redirecionar(item) { location.href = 'http://dev.dsdsoftware/recebimento/dashboard'; } Nome da rota: recebimento.dashboard Como eu faço um Href em JavaScript apontando para uma rota (laravel)?
-
TOQUE PARA DESPERTAR A TELA DO IPHONE X NÃO FUNCIONA!!! ALGUÉM SABE PF??
Luis Felipe Rebecca postou um tópico no fórum iOS
*Sei que esse não é um fórum para isso, mas estou realmente precisando! Olá galera, tenho um iPhone x e estou com um problema com relação a despertar o iPhone com um toque na tela, quando bloqueado, ao tocar na tela ele acende, mas não está acontecendo. Não sei se isso é alguma opção que desativei ou por causa de alguma coisa do modo pouca energia (Porem já tentei desligar e nada), enfim, estou realmente preocupado por que o celular é novo e não era pra isso ter acontecido. Alguém sabe como resolver ou me indicar um tutorial para resolver esse problema? Por favor!! -
Tirar quebra de linha ao identar codigo no Php Storm
Luis Felipe Rebecca postou uma questão Perguntas e respostas rápidas
Preciso retirar a quebra de linha automática ao identar o código no PhpStorm.Para ser mais resumido, retirar a linha que indica o final da tela para o código ir até o final e não quebrar a linha.Obs: Já tentei esse procedimento - File > Settings > Editor > General > Soft Wraps > ative o checkbox: 'Use soft wraps in editor' , e não tive resultado!Alguém sabe como retirar? -
Colocar dois datasets na mesma coluna no gráfico de barras do Chart.js
Luis Felipe Rebecca respondeu ao tópico de Luis Felipe Rebecca em Javascript
Consegui achar uma solução aqui!! options: { tooltips: { callbacks: { label: function (t, d) { var xLabel = d.datasets[t.datasetIndex].label; var yLabel = t.yLabel >= 1000 ? '$' + t.yLabel.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : '$' + t.yLabel; return xLabel + ': ' + yLabel; } } }, legend: { display: false, position: 'top', }, scales: { yAxes: [{ ticks: { beginAtZero: true, callback: function (value, index, values) { if (parseInt(value) >= 1000) { return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } else { return '$' + value; } } } }] } }, plugins: [{ beforeDraw: function (chart) { var labels = chart.data.labels; } }] Coloquei esse trecho que achei em um site gringo e funcionou! Obrigado! -
Colocar dois datasets na mesma coluna no gráfico de barras do Chart.js
Luis Felipe Rebecca respondeu ao tópico de Luis Felipe Rebecca em Javascript
Já tentei sim! ele fica encima dos que já tem, juntando os dois e fazendo uma coluna só. -
Colocar dois datasets na mesma coluna no gráfico de barras do Chart.js
Luis Felipe Rebecca postou um tópico no fórum Javascript
Galera preciso colocar dois datasets na mesma coluna do gráfico de barras,desse jeito: Meu gráficos está assim: Código: <script> var ctx = document.getElementById('chartBar').getContext('2d'); var stackedBar = new Chart(ctx, { type: 'bar', data: { labels: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], datasets: [{ data: [2, 10, 5, 6, 20, 30, 45,20, 10, 5, 2, 20,0, 10, 5, 6, 20, 30, 45,20, 10, 5, 2, 20], backgroundColor: 'rgb(0, 128, 160)', borderColor: 'rgb(0, 128, 160)', }] }, options: { scaleBeginAtZero : true, scaleShowGridLines : true, scaleGridLineColor : "rgba(0,0,0,.005)", scaleGridLineWidth : 0, scaleShowHorizontalLines: true, scaleShowVerticalLines: true, barShowStroke : true, barStrokeWidth : 0, tooltipCornerRadius: 2, barDatasetSpacing : 3, scales: { xAxes: [{ stacked: true, ticks: { } }], yAxes: [{ stacked: true }] } } }); </script> <div class="col-md-6"> <canvas id="chartBar" height="150"></canvas></div> Alguém pode me ajudar? -
Fazer contador que coloca uma margem no no objeto
Luis Felipe Rebecca respondeu ao tópico de Luis Felipe Rebecca em HTML e CSS
Consegui resolver pessoal, era só fazer um jogo de colunas, juntamente com a class form-row. Enfim obrigado pela ajuda Omar. Não utilizei java para resolver o problema, somente html e css. -
Fazer contador que coloca uma margem no no objeto
Luis Felipe Rebecca postou um tópico no fórum HTML e CSS
Fiz um sistema de enviar fotos e salvar em miniatura. O problema é q quando vou apresentar as imagens em outro lugar elas apresentam uma embaixo da outra, mesmo ultrapassando o tamanho que defini pra div. Obs: Uso laravel. <div class="col-md-4" style="height:203px"> <p align="center"> @foreach($desmontagem->imagens as $index => $imagem) <div class="col-lg-3 col-md-6 m-b-20 text-center"> {{ $index + 1 }} <a href="{{ asset($imagem->imagem) }}" target="_blank"> <img src="{{ asset($imagem->imagem) }}" class="img-responsive radius"> </a> </div> @endforeach </p> </div> A ideia é que quando chegue a 2 ela vá para "segunda coluna". Alguém pode me ajudar? Obs: Sou iniciantes em php.