Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''firebase''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 9 registros

  1. wilkens.gomes@hotmail.com

    Executar função automaticamente no Firebase!

    Como faço para programar uma função para executar uma tarefa em uma determinada hora mesmo se o meu aplicativo web não estiver aberto. Ex: comparar valor da hora adicionada no banco de dados (database) com a hora local e mudar um dado no (database). var statusHora = firebase.database().ref('/Hora'); var d = new Date(); var dados = 'Aberto'; var h = ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2); statusHora.on('value', function (snapshot) { if (snapshot.val() == h) firebase.database().ref().child('/Status').set(dados);
  2. reinaldo054

    Inserir comentários em um aplicativo IONIC

    Eu estou criando um aplicativo em que embaixo do conteúdo da página eu tenho a opção do usuário fazer um comentário. Estou usando o firebase para fazer cadastro e login e já até consegui gravar a mensagem no banco de dados, mas só ela, precisava colocar o nome do usuário ou username, e a data que o comentário foi feito.------------------ Meu html está assim: <ion-content #content id="content"> <ion-card *ngFor="let message of messages"> <ion-card-header> {{message.nome}} </ion-card-header> <ion-card-content> {{message.mensagem}} </ion-card-content> <ion-footer> <ion-toolbar> <ion-input placeholder="Comente algo..." [(ngModel)]="message"></ion-input> <ion-buttons end> <button ion-button icon-right (click)="sendMessage()"> Enviar <ion-icon name="send"></ion-icon> </button> </ion-buttons> --------------------------meu ts está assim: export class Cap1SegObsPage { @ViewChild("content") content: any; username: string message: string = "" messages = []; constructor(public navCtrl: NavController) { this.getMessages(); } getMessages(){ var messagesRef = firebase.database().ref().child("mensSegObsCap1"); messagesRef.on("value", (snap) => { var data = snap.val(); this.messages = []; for(var key in data){ this.messages.push(data[key]); } this.scrollToBottom(); }); } scrollToBottom(){ var contentEnd = document.getElementById("content-end").offsetTop; this.content.scrollTo(0, contentEnd, 300); } sendMessage(){ var messagesRef = firebase.database().ref().child("mensSegObsCap1"); messagesRef.push({mensagem: this.message, nome: this.username}); this.message = ""; } }
  3. Luis Felipe Rebecca

    While para cadastrar no Firebase

    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 ++; } }
  4. 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>
  5. 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; } }
  6. 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.
  7. Sames Davis

    Firebase - Enviar foto e recuperar link para download

    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)); } }
  8. Gabrielvt14

    Push notification no webview - Android / iOS

    Ola pessoal. Estou com um app rodando no webview. Ele é um sistema na web e o webview como o app. No sistema, tem determinadas ações que o sistema envia push notification para o usuário. Fiz a integração com o firebase cloud messaging Javascript. Mas ele nao funciona no webview, somente acessando diretamente pelo browser. Pelo que estava pesquisando, eu teria que configurar a parte de javascript, para web, e no webview configurar de novo para funcionar no webview, e uso a base de dados na web pra enviar os push. Então eu precisaria vincular cada token que o firebase gera para o dispositivo com o ID do usuário na base de dados, porém, o ID eu pego ele pela web, e o token, o firebase envia direto para o webview. Então não sei como faria para vincular esse token que o firebase gera com o ID do usuário. Alguém sabe se tem alguma forma? Desde já agradeço!
  9. Gostaria de uma solução segura para desenvolver um algoritmo que valide o acesso dos clientes que fazem o uso da minha aplicação, depois de algumas pesquisas não consegui encontrar algo que pareça se adequar com o que preciso. Possuo uma aplicação em que uso Angular 5, Node.js, Firebase e preciso gerar uma chave de acesso para cada usuário, sendo que essa chave de acesso deverá expirar depois de um determinado tempo, sendo assim o usuário deverá solicitar uma nova chave de acesso com nova validade. No sistema quando o usuário ir em configurações, deverá exibir o plano que ele contratou com a chave de acesso e a validade. Como posso fazer isso em uma aplicação Angular da forma mais correta e segura?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.