Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. MongoDB
Code

Como Usar o MongoDB Stitch em Aplicativos Android

by
Difficulty:BeginnerLength:MediumLanguages:

Portuguese (Português) translation by Luis Drum (you can also view the original English article)

Com o MongoDB Atlas, bastam alguns cliques no navegador para obter e colocar seu próprio cluster do MongoDB em funcionamento na nuvem. Ao utilizá-lo, você pode construir apps Android e iOS que podem servir milhões de usuários de forma eficiente. No entanto, você ainda precisa de um servidor back-end que possa atuar como um intermediário entre os dispositivos de seus usuários e seu cluster. Você precisaria disso para reforçar as políticas de segurança, adicionar um nível de abstração às suas operações CRUD, agendar tarefas e muitas outras tarefas importantes.

O MongoDB Stitch é uma poderosa plataforma serverless que pode satisfazer todas as suas exigências de back-end. Além de oferecer controle de acesso refinado para os dados em seu cluster MongoDB Atlas, oferece um ambiente de computação baseado em JavaScript que você pode usar para executar uma grande variedade de operações do lado do servidor. Neste tutorial, vou mostrar-lhe como usar a plataforma em um app Android.

Pré-requisitos

Para acompanhar, você precisará de:

1. Criar um Cluster MongoDB Atlas

O MongoDB Stitch destina-se a ser usado com um cluster de MongoDB Atlas. Você está livre para usar um cluster que você já tenha, mas eu sugiro que você crie um novo para este tutorial.

Inicie a sessão na sua conta do MongoDB Atlas e  pressione o botão Build a New Cluster.

MongoDB Atlas home page

Na tela seguinte, que solicita detalhes de configuração sobre o novo cluster, escolha qualquer provedor de nuvem, uma região que ofereça um cluster de camada livre M0 e pressione o botão Create Cluster.

Cluster creation wizard

Depois de alguns minutos, você terá um novo cluster de camada livre chamado Cluster0.

2. Criar uma Aplicação MongoDB Stitch

Para associar uma aplicação Stitch com seu cluster, clique sobre Link Application. Na página que se abre em seguida, pressione o botão Create New Application.

Agora, você pode digitar o nome que você quer para sua nova aplicação Stitch. Depois que você fizer isso, certifique-se de que o cluster está selecionado e pressione o botão Create.

New Stitch app dialog

Neste ponto, sua aplicação Stitch — com quotas gratuitas muito generosas — está pronta.

Stitch app overview

A aplicação tem uma ID exclusiva que você precisará ao desenvolver seu aplicativo Android. Você pode vê-la indo até a seção Clients e abrindo a guia de Java (Android).

Stitch app ID

3. Configurar Usuários e Regras

Usando MongoDB Stitch, você pode escrever com segurança código web e móvel de front-end para interagir com seu cluster de MongoDB Atlas. Isso é possível porque você não terá que incluir uma string de conexão que contenha o endereço do servidor de seu banco de dados, nome de usuário e senha em seu código.

Os usuários finais autenticados de sua aplicação Stitch  ganham acesso automaticamente ao seu banco de dados. Usando uma ou mais regras, no entanto, você pode controlar precisamente quais documentos e campos eles podem ver ou modificar.

Para autenticar os usuários, o Stitch oferece vários mecanismos de autenticação, incluindo autenticação anônima, autenticação de e-mail e senha, e autenticação usando provedores de identidade federada populares. Neste tutorial, usaremos autenticação anônima. Para configurá-la, vá para a seção Users e abra a guia Providers.

List of authentication providers

Em seguida, selecione a opção Allow users to log in anonymously, habilite-a e pressione o botão Save.

Digamos que queremos permitir que nossos usuários anônimos trabalhem apenas com seus documentos próprios. Para criar esta regra, vá para a seção Rules.

Como as regras são aplicadas às coleções, pressione o botão Add Collection para criar uma nova coleção agora. No formulário que aparece, dê um nome a ele e especifique a qual banco de dados deve pertencer. Após fazer isso, selecione Users can only read and write their own data como modelo de regras de dados.

Add new collection page

Ao selecionar o modelo, você será solicitado a especificar o nome do campo no documento no qual armazenará o ID de autenticação do usuário do Stitch gerado automaticamente. O Stitch usará este campo ao decidir se um documento pertence a um usuário ou não. Diga que o nome é user_id e envie o formulário.

Na página que se abre em seguida, você pode agora confirmar que apenas os proprietários dos documentos em sua coleção podem executar operações de leitura e escrita  sobre eles.

Collections permissions page

4. Preparar o Projeto Android

Para ser capaz de usar o Stitch no seu projeto Android Studio, você deve adicionar seu SDK oficial como uma dependência de implementation no arquivo de build.gradle do seu módulo de app.

Além disso, você deve mencionar o ID exclusivo de sua aplicação Stitch em seu projeto. Então vá para o arquivo res/values/strings.xml e adicione-o como uma </string> tag.

5. Estabelecer uma Conexão

Com uma instância da classe StitchAppClient, você pode facilmente fazer uso de todos os recursos que a plataforma Stitch oferece. Para inicializar initialize StitchAppClient, você deve chamar o método initializeDefaultAppClient() e  passar o ID de sua aplicação Stitch para ele. Isso precisa ser feito apenas uma vez em seu aplicativo, de preferência assim que ele for iniciado.

Assim que estiver pronto, você pode chamar o método getDefaultAppClient() para obter uma referência para o cliente. O seguinte código, que você pode adicionar ao  método onCreate() de sua activity, mostra-lhe como:

A menos que o usuário esteja conectado ao seu app Stitch, você não será capaz de executar quaisquer operações úteis no cluster MongoDB Atlas. Portanto, você deve agora conectar o usuário chamando o método loginWithCredential(), que funciona de forma assíncrona e retorna um objeto Task. Além disso, porque você escolheu a autenticação anônima como o mecanismo de autenticação no console de web do Stitch, certifique-se de passar uma instância da classe AnonymousCredential para o método.

Neste ponto, se você executar o aplicativo, o Stitch automaticamente irá registrá-lo como um novo usuário e também  conectá-lo ao app. Além do mais, se você voltar para o console da web do Stitch e abrir a seção Users, você será capaz de ver que uma nova entrada foi adicionada à lista de usuários.

List of authenticated users

6. Inserir Documentos

Após uma autenticação bem-sucedida, você pode ir em frente e obter uma instância da classe RemoteMongoClient para começar a interagir com o cluster do MongoDB Atlas. Para fazer isso, você pode chamar o método getServiceClient() e especificar que o nome do serviço que você quer é "mongodb-atlas". Aqui está como:

Lembre-se que, graças a regra que você criou anteriormente neste tutorial, seu usuário pode somente executar operações de leitura e escrita sobre os seus próprios dados. Além disso, seu usuário está limitado a trabalhar apenas com o banco de dados e a coleção que você mencionou no console web do Stitch.

Para obter uma referência para o banco de dados, chame o método getDatabase() e passe o seu nome para ele. Da mesma forma, para obter uma referência à coleção, chame o método getCollection, que retorna um objeto RemoteMongoCollection.

O que você adiciona à coleção, naturalmente, depende de você. Por exemplo, digamos que queremos adicionar documentos contendo registros de todas as vezes em que o usuário abriu o app.

Para criar um novo documento BSON, você deve usar o construtor da classe Document. Como os objetos Document são muito semelhantes aos mapas, você pode usar o operador [] para adicionar pares key-value a eles.

O código a seguir mostra como criar um novo documento e adicionar um registro de data e hora a ele:

Além de seus dados, todos os seus documentos devem conter a Stitch auth ID do usuário. Sem ela, as operações de inserção falharão. Para obter a auth ID, você pode usar diretamente a propriedade id do objeto implícito it disponível no listener on-sucess.

Agora, você pode inserir o documento chamando o método insertOne(). (Você pode ler sobre o método insertOne() e outras operações de escrita na documentação do MongoDB para o driver Java.) Porque ele é executado de forma assíncrona, você precisará de outro listener on-sucess para verificar se a operação de inserção foi bem-sucedida.

Se você executar o aplicativo agora e olhar o painel Logcat do Android Studio, você deve ser capaz de ver uma entrada de log que se parece com isto:

Logcat panel displaying success message

7. Executar Consultas

Ao chamar o método find() do objeto RemoteMongoCollection, você pode criar uma consulta. (Você pode aprender mais sobre find() e outras operações de consulta na documentação do driver Java do MongoDB.) O método retorna um objeto RemoteFindIterable, no qual você pode chamar métodos  como sort() e limit() para gerenciar os resultados da consulta. Por exemplo, o código a seguir cria uma consulta para localizar os últimos cinco documentos criados pelo usuário:

Para realmente executar a consulta, você pode chamar o método into(), que espera que uma lista como um argumento. Como seu nome sugere, ele carrega os resultados da consulta, que são nada mais que objetos de Document, para a lista que você passar para ele. Ele é executado de forma assíncrona, então você pode começar a usar a lista somente dentro de um listener on-sucess.

Por enquanto, para manter as coisas simples, vamos usar um widget TextView para exibir os resultados da consulta. Então adicione o seguinte código ao arquivo XML de layout da sua activity:

De volta ao ouvinte on-success, você pode percorrer a lista e criar uma string concatenada contendo todos os timestamps Opcionalmente, você pode passar os timestamps para o método getRelativeDateTimeString() da classe DateUtils para torná-los mais legíveis. Depois que a string estiver pronta, você pode atribuí-la diretamente para o widget TextView. Aqui está como:

Se você executar o aplicativo novamente, agora você deve ver algo como isto em seu dispositivo:

App displaying list of timestamps

Conclusão

O MongoDB Stitch é uma plataforma serverless que você pode usar para criar aplicativos modernos que podem ser dimensionados facilmente para lidar com grandes quantidades de dados do usuário. Neste tutorial, você aprendeu a usá-lo para autenticar usuários de seus aplicativos Android anonimamente e permitir que eles realizem operações de leitura e escrita em seus clusters do MongoDB Atlas com segurança.

Para saber mais sobre MongoDB Stitch, consulte a documentação oficial.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.