Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Agrupar um arquivo Realm - React Native SDK

Nesta página

  • Procedimento
  • Crie um Arquivo de Realm para agrupar
  • Agrupe o Arquivo de Realm com seu aplicativo
  • Abra o pacote de Realm em seu aplicativo

O Realm suporta o agrupamento de arquivos realm. Ao agrupar um arquivo de domínio, você inclui um banco de dados e todos os seus dados no download do aplicativo.

Isso permite que os usuários iniciem aplicativos pela primeira vez com um conjunto de dados iniciais. Para domínios sincronizados, o agrupamento pode evitar um download inicial demorado na primeira vez que um usuário abre seu aplicativo. Em vez disso, os usuários devem baixar apenas as alterações sincronizadas que ocorreram desde que você gerou o arquivo agrupado.

Importante

Aplica-se apenas a domínios locais

O conteúdo desta página se aplica somente aos domínios locais.

Aviso

Não se aplica aos aplicativos Expo

Este procedimento não funciona para aplicativos React Native criados com a Expo.

Siga estas etapas para criar e agrupar um Arquivo de Realm para sua aplicação React Native.

1

A maneira mais fácil de criar um Realm para seu aplicativo React Native é escrever um script Node.js separado para criar o Realm.

Você deve usar o pacote realm para criar seu pacote em vez de @realm/react.

  1. Construa um aplicativo de domínio temporário que compartilhe o modelo de dados do seu aplicativo.

  2. Abra um domínio e adicione os dados que deseja agrupar. Se estiver usando um domínio sincronizado, dê tempo para que o domínio sincronize totalmente.

    create-bundded-realm.js
    import Realm from "realm";
    import { Dog } from "./schemas";
    // open realm
    const config = {
    schema: [Dog],
    path: "bundle.realm",
    };
    const realm = await Realm.open(config);
    // add data to realm
    realm.write(() => {
    realm.create("Dog", { name: "Jasper", age: 10, type: "Golden Retriever" });
    realm.create("Dog", { name: "Maggie", age: 12, type: "Collie" });
    realm.create("Dog", { name: "Sophie", age: 6, type: "German Shepard" });
    });
    realm.close();
  3. Observe o caminho de arquivo do Arquivo de Realm fornecido. Você precisará desse arquivo para usar o Realm empacotado em sua aplicação de produção, conforme descrito na próxima seção.

    temp_realm_app
    .
    ├── bundle.realm
    ... rest of files in _temp_ application
2

Agora que você tem uma cópia do Realm que contém os dados iniciais, adicione o Arquivo de Realm ao sua aplicação de produção. Onde você coloca o Realm difere para compilações iOS e Android.

  1. Abra a pasta android gerada pelo React Native no Android Studio.

  2. Na árvore Project , navegue até app > src > main. Clique com o botão direito do mouse no diretório main . Crie um novo subdiretório denominado assets.

  3. Arraste o Arquivo de Realm agrupado para o diretório assets .

  1. No Xcode, abra o arquivo your_project_name.xcworkspace dentro do diretório ios gerado pelo React Native.

  2. Selecione seu aplicativo no navegador do projeto e selecione a aba Build Phases na visão geral do projeto.

  3. Expanda o item Copy Bundle Resources .

  4. Clique no ícone +.

  5. Clique no botão Add Other....

  6. Encontre seu arquivo de domínio fornecido e adicione-o. Não altere as configurações padrão e selecione o botão Finish .

3

O domínio agora está em um pacote e será incluído quando um usuário baixar o aplicativo. Para adicionar o arquivo de domínio agrupado ao diretório de documentos do seu aplicativo, chame Realm.copyBundledRealmFiles() antes de abrir o domínio.

Realm.copyBundledRealmFiles() adiciona todos os arquivos *.realm do pacote de aplicativos ao diretório de documentos do aplicativo. Esse método não substitui nenhum arquivo existente com o mesmo nome, portanto, é seguro chamá-lo toda vez que o aplicativo iniciar.

Abra o Realm agrupado com o mesmo nome e configuração que você especificou quando criou inicialmente o Realm agrupado.

Agora que você tem uma cópia do domínio incluída em seu aplicativo de produção, precisa adicionar código para usá-lo.

import React from 'react';
import {createRealmContext, Realm} from '@realm/react';
import {Dog} from './schema';
Realm.copyBundledRealmFiles();
const realmContext = createRealmContext({schema: [Dog], path: 'bundle.realm'});
const {RealmProvider} = realmContext;
export default function OpenBundledRealm() {
return (
<RealmProvider>
{/* Rest of app has access to objects pre-populated
in the bundled realm. */}
<RestOfApp />
</RealmProvider>
);
}

Voltar

Configurar um Realm