Consulta de documentos do Couchbase em um aplicativo móvel Angular NativeScript

I escreveu recentemente sobre usando o Couchbase como um armazenamento de valor-chave em um aplicativo NativeScript para iOS e Android criado com o Angular. Neste exemplo, vimos como coletar informações de perfil de usuário para serem salvas ou carregadas a partir de Couchbase nos dispositivos móveis. No entanto, estávamos salvando e carregando com base em uma chave específica, e não consultando com base nas propriedades do documento.

E se você tiver documentos NoSQL em que não conhece a chave e precisa fazer consultas com base nas propriedades do documento? Neste exemplo, vamos usar o Artigo anterior para o próximo nível.

NativeScript with Couchbase Profiles Example

Vamos trazer nossa página única NativeScript para várias páginas, sendo que a primeira página é uma lista de perfis salvos anteriormente e a segunda página permite que você crie novos perfis. A navegação entre as páginas será feita com o Angular Router.

Os requisitos

Os requisitos entre este guia e o anterior permanecem os mesmos. Você precisará do seguinte:

  • CLI do NativeScript 2.0+
  • Android SDK e/ou Xcode para Mac

A CLI do NativeScript, obtida por meio do Node Package Manager (NPM), nos permitirá criar e desenvolver projetos móveis. Para criar e implantar aplicativos Android e iOS reais, você precisará do Android SDK ou do Xcode, ou de ambos.

Começando de onde paramos

Não criaremos nosso projeto do zero, mas, em vez disso, faremos referência ao tutorial anterior NativeScript com Couchbase. No entanto, muito do que você verá aqui será uma revisão.

O projeto anterior deve ser um aplicativo básico de uma página com o nativescript-couchbase plugin instalado. Precisamos transformar nossa página única em várias páginas.

Preparação de várias páginas de aplicativos para navegação

Usaremos duas páginas além do modal que criamos anteriormente. Em seu projeto, crie os seguintes arquivos e diretórios:

Os arquivos acima representarão nossas duas páginas. Para ter sucesso com o Angular Router, precisamos criar um arquivo de roteamento que vincule esses arquivos.

Crie o seguinte em seu projeto:

Embora ainda não tenhamos criado nossas classes de página, vamos nos concentrar em vinculá-las. Abra o diretório app/app.routing.ts e inclua o seguinte:

Como você pode imaginar, vamos ter um Componente ProfileList e um ProfileComponent. Quando se trata de Rotas de aplicativosA página padrão é aquela com um caminho de rota vazio. A segunda página poderá ser navegada por meio do perfil caminho.

Adicionar cada um dos componentes a uma matriz é uma conveniência para a próxima etapa.

Abra o arquivo app/app.module.ts porque precisamos configurar o roteador para usar o arquivo de roteamento que acabamos de criar.

Observe na imagem acima que ainda temos todos os itens relacionados ao modal do tutorial anterior. Desta vez, importamos do diretório app/app.routing.ts e injetado no arquivo importações e declarações matriz do @NgModule bloco.

A página principal de nosso sistema de roteamento é a Componente de aplicativo que estávamos usando no exemplo anterior. Precisamos eliminá-la.

Abra o arquivo app/app.component.html e inclua a seguinte marcação XML:

Para combinar com isso, podemos remover a maior parte do código dentro do app/app.component.ts arquivo. No final, esse arquivo deve ser semelhante ao seguinte:

Neste ponto, podemos começar a desenvolver cada uma das páginas do nosso aplicativo. Para obter mais informações sobre roteamento usando o Angular Router, visite Artigo anterior Escrevi sobre o assunto.

Movendo o código do exemplo anterior do Couchbase NativeScript

Lembra-se de todo o código que acabei de dizer para você apagar? Eu provavelmente não deveria ter dito isso, mas, para nossa sorte, você pode copiá-lo e colá-lo no exemplo anterior ou, melhor ainda, abaixo.

Precisamos pegar o código que estava anteriormente no app/app.component.ts e app/app.component.html e movê-lo para o novo arquivo app/components/profile/profile.ts e app/components/profile/profile.html arquivos.

Abra o app/components/profile/profile.html e faça com que ele se pareça com o seguinte:

A única coisa que mudou no exemplo acima foi que removi o botão na barra de ação que era usado para carregar dados. Agora, abra a seção app/components/profile/profile.ts e inclua o seguinte:

Para ser justo, removi o carregar que tínhamos e incluímos o serviço Angular Location para navegar para trás na pilha de navegação. Tudo, com exceção dos caminhos, deve ser o mesmo.

Lembre-se, meu aplicativo tem imagens de avatar de gatinhos que encontrei na Internet.

NativeScript with Couchbase Kittens

Você provavelmente deveria encontrar suas próprias imagens de avatar e usá-las conforme apropriado. O ~/ representa que as imagens devem ser encontradas na seção aplicativo diretório.

Agora precisamos dar uma olhada na página a ser criada para listar os dados na tela.

Consultando perfis e adicionando-os a uma lista na interface do usuário

Nossa nova página deve, em teoria, ser mais simples do que tudo o que fizemos até agora e no guia anterior. Abra a seção app/components/profile-list/profile-list.ts e inclua o seguinte:

No exemplo acima, temos um Componente ProfileList com uma variável pública para manter todos os nossos dados vinculados à interface do usuário e uma instância privada para o nosso banco de dados Couchbase.

Precisamos ser capazes de navegar para frente na pilha de navegação e detectar a navegação para trás na pilha, portanto, injetamos o Roteador e Localização serviços no construtor método. O construtor também faz o seguinte:

No exemplo acima construtor abrimos nosso banco de dados e criamos uma nova visualização do MapReduce. Essa visualização é muito simplista no sentido de que retornará um par de valores-chave de todos os documentos no banco de dados. Não há lógica condicional em torno do que ela retorna nesse cenário. A visualização perfis A visualização do MapReduce é a base de nossas consultas.

Para consultar essa exibição, temos o comando atualizar método:

Após a consulta, enviamos cada um dos resultados para nossa página pública perfis variável. Não se confunda, a variável perfis não é a mesma que a variável perfis vista.

O ngOnInit aciona após o construtor método. Não apenas executamos nossa consulta, mas precisamos assinar os eventos de navegação para que possamos executar a consulta ao retornar à página. Isso ocorre porque o método construtor e o ngOnInit são acionados somente no carregamento, não em eventos de navegação anteriores.

Nosso último método é o criar método:

Isso será acionado quando o botão for pressionado e nos levará à segunda tela.

A interface do usuário para essa página, encontrada na seção app/components/profile-list/profile-list.htmlO resultado será parecido com o seguinte:

O iterará sobre cada item em nossa matriz pública e os converterá em linhas. Cada linha terá duas colunas, sendo que a primeira coluna de imagem tem uma largura de 50 e a segunda coluna é esticada para se ajustar.

Conclusão

Você acabou de ver como pegar seu valor-chave NativeScript com o aplicativo Couchbase para o próximo nível, adicionando consultas de visualização MapReduce para consultar dados com base nas propriedades do documento. Embora os dados de perfil não sejam muito úteis, e se você quisesse sincronizar o que está armazenado em Couchbase no dispositivo para outros dispositivos? Daremos uma olhada nisso na próxima vez.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Nic Raboy, defensor dos desenvolvedores, Couchbase

Nic Raboy é um defensor das modernas tecnologias de desenvolvimento móvel e da Web. Ele tem experiência em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experiências de desenvolvimento relacionadas a tornar o desenvolvimento móvel e da Web mais fácil de entender.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.