Realm JavaScript - v12.11.1

[!NOTA] O Realm agora é Atlas Device SDK - Saiba mais

Realm por MongoDB

O Realm reconhecimento de data center

O Realm é um banco de dados móvel que é executado diretamente dentro de telefone, tablete ou dispositivo móvel. Este projeto hospeda a implementação JavaScript & Typescript do Realm. Atualmente, suportamos React Native (JSC & Hermes no iOS e Android), Node.js e Electron (no Windows, MacOS e Linux).

O que são os Atlas Device SDKs?

Device SyncAtlas

Os Atlas Device SDKs são uma collection de Atlas Device SDKs específicos de linguagem e plataforma, cada um com um conjunto de ferramentas de desenvolvimento de aplicação otimizadas para acesso a dados e persistência em dispositivos móveis e de borda. Use os SDKs para construir aplicativos móveis, de ponta, web, desktop e IoT orientados por dados.

Pode ajudar pensar no banco de dados Realm como a camada de persistência dos Atlas Device SDKs.

Características

  • Mobile-first: Realm é o primeiro reconhecimento de data center criado do zero para ser executado diretamente em telemóveis, tablas e dispositivos melhoráveis.
  • Simples: os dados são expostos diretamente como objetos e consultáveis por código, eliminando a necessidade de ORMs cheios de problemas de desempenho e manutenção.
  • Moderno: o reconhecimento de data center suporta relacionamento, genéricos e vetorização.
  • Rápido: é mais rápido do que o SQLite bruto em operações comuns, mantendo um conjunto de recursos extremamente rica.
  • MongoDB Atlas Device Sync: simplifica a sincronização de dados entre usuários, dispositivos e backend com Realm Mobile Sync em tempo real. Comece gratuitamente com uma aplicação de modelo e crie o backend de cloud.

Começar

Consulte as instruções detalhadas em nossos Docs para utilizar o Atlas Device SDK para Node.js e Atlas Device SDK para React Native. Observe que, atualmente, apenas o Node.js versão 18 ou posterior é suportado. Para usuários do React Native, temos uma matriz de compatibilidade que mostra quais versões são suportadas.

Documentação

Atlas Device SDKs para React Native e Node.js

A documentação do Atlas Device SDK for React Native pode ser encontrada em mongodb.com/pt-br/docs/atlas/device-sdks/sdk/react-native/. A documentação do Atlas Device SDK para Node.js pode ser encontrada em mongodb.com/pt-br/docs/atlas/device-sdks/sdk/node/.

A referência da API está localizada em mongodb.com/pt-br/docs/realm-sdks/js/latest/.

Se você estiver usando o React Native, de uma olhada no readme para @realm/react, que fornece React hooks para facilitar o trabalho com o Realm.

Modelos Typescript

Typescript é uma alternativa popular ao JavaScript, pois fornece digitação estática. Nosso suporte ao Typescript consiste em duas partes

  • Definições precisas do Typescript @realm/babel-plugin para transformar classes do Typescript em esquemas do Realm. Um exemplo de uma classe de modelo é:
class Task extends Realm.Object<Task, "description"> {
_id = new Realm.BSON.ObjectId();
description!: string;
@index
isComplete = false;

static primaryKey = "_id";

constructor(realm, description: string) {
super(realm, { description });
}
}

Integração com o React Native

O Atlas Device SDK para React Native fornece persistência de objeto e query avançadas para objeto persistentes. Você pode ter uma integração mais fácil com o React Native usando @realm/react.

Aplicativos de modelo

Temos modelos Typescript para ajudá-lo a começar a usar o Realm. Siga os links para o modelo desejado e siga as instruções para começar a usar rapidamente.

Obtendo ajuda

  • Precisa de ajuda com seu código?: Procure perguntas anteriores na Realm - ou faça uma nova pergunta. Você também pode conferir o nosso Fórun da comunidade, onde perguntas gerais sobre como fazer algo podem ser discutidas.
  • Tem um bug para relatar? Abra um problema. Se possível, inclua a versão do Realm, um registro completo, o Arquivo de Realm e um projeto que mostre o problema.
  • Tem uma solicitação de funcionalidade? Abra um problema. Diga-nos o que o recurso deve fazer e por que você deseja o recurso.

Contribuindo

Consulte CONTRIBUTING.md para obter mais detalhes!

Problemas conhecidos

  • O Realm não é compatível com o Chrome Debugger legado. Os seguintes métodos de depuração são compatíveis:
    • O Hermes Debugger é a maneira recomendada de depurar aplicativos React Native modernos.
    • O Swift também tem um conjunto de recursos semelhante, mas requer algumas configurações e só oferece suporte à depuração no iOS.
    • OBSERVAÇÃO: para os métodos acima, não é necessário habilitar Debug with Chrome no menu de depuração.

Construindo o SDK

Para obter instruções sobre como compilar o SDK a partir da origem, consulte o arquivo build.md .

Solução de problemas de binários ausentes

É possível, após instalar e executar o Realm, que você encontre o erro Could not find the Realm binary. Veja algumas dicas para ajudar com isso.

Compatibilidade

Consulte nosso COMPATIBILITY.md para garantir que você esteja executando a versão compatível do realm com as versões suportadas do node, react-native ou expo.

React Native

iOS

Normalmente, esse erro ocorre quando as dependências do pod não foram atualizadas. Tente executar o seguinte comando:

npx pod-install

Se isso ainda não ajudar, é possível que haja alguns erros de cache com sua compilação ou com suas dependências de pod. Os seguintes comandos podem ser usados para limpar esses caches com segurança:

rm -rf ios/Pods
rm ios/Podfile.lock
rm -rf ~/Library/Developer/Xcode/DerivedData

Depois, reinstale os Pods e tente novamente. Se isso ainda não funcionar, verifique se o diretório prebuilds/apple/realm-core.xcframework existe e contém um binário para sua plataforma e arquitetura. Se isso estiver faltando, tente reinstalar o pacote realm npm e os CocoaPods.

Andróide

Isto pode ocorrer ao instalar o realm e não executar uma construção limpa. Os seguintes comandos podem ser usados para limpar seu cache:

cd android
./gradlew clean

Depois, tente reconstrua para o Android. Se você ainda estiver enfrentando problemas, certifique-se de que o node_moduels/realm/react-native/android/src/main/jniLibs contenha um binário de Realm para sua arquitetura. Se isso estiver faltando, tente reinstalar o pacote realm npm.

Expo

Se você estiver usando a Expo, uma falha comum é não instalar o expo-dev-client e usar os scripts específicos do cliente de desenvolvimento para criar e executar seu projeto React Native na Expo. O Cliente de Desenvolvimento permite que você crie uma versão local do Expo Go que inclui bibliotecas de terceiros, como o Realm. Se você deseja utilizar o realm em um projeto Expo, as seguintes etapas podem ajudar.

  • instale o expo-dev-client:
    npm install expo-dev-client
    
  • construa o cliente de desenvolvimento para iOS
    npx expo run:ios
    
  • construir o cliente dev para Android
    npx expo run:android
    
  • inicie o empacotador sem construir
    npx expo start --dev-client
    

Nó/Electron

Ao executar o npm install realm , os binários do realm para a arquitetura detectada são baixados no node_modules/realm/prebuilds . Se esse diretório estiver ausente ou vazio, certifique-se de que não haja nenhum problema de rede relatado na instalação.

Análise

Envia de forma assíncrona informações de instalação para o Realm.

Por que estamos fazendo isso? Em resumo, porque nos ajuda a construir um produto melhor para você. Nenhum dos dados identifica pessoalmente você, seu gerente ou seu aplicativo, mas nos ajudará a entender qual linguagem você usa, quais versões do Node.js você segmenta, etc. Ter essas informações ajudará a priorizar nosso tempo, adicionando novos recursos e descontinuando recursos antigos. Coletar um caminho de aplicativo anônimo e um identificador de máquina anônimo é a única maneira de contarmos o uso real das outras métricas com precisão. Se não tivermos uma maneira de deduplicar as informações relatadas, elas serão inúteis, pois um único desenvolvedor npm install- usar o mesmo aplicativo 10 vezes relataria 10 vezes mais do que outro desenvolvedor que instala apenas uma vez, tornando os dados todos mas inútil. Ninguém curte compartilhar dados, a menos que seja necessário, nós entendemos, e estamos analisando adicionar isso por um longo tempo. Se você realmente, se sentir compelido a não enviar esses dados de volta para o Realm, poderá definir uma variável env chamada REALM_DISABLE_ANALYTICS.

Atualmente, as seguintes informações são relatadas:

  • Qual versão do Realm está sendo instalada.
  • A plataforma e a versão do sistema operacional que está sendo usada.
  • Se uma estrutura JavaScript (atualmente React Native e Electron) for usada e sua versão.
  • Qual mecanismo JavaScript está sendo usado.
  • Número da versão do Node.js.
  • Versão do Typescript, se usado.
  • Um identificador de máquina anônimo e um nome de aplicativo em hash para agregar as outras informações.

Além disso, escrevemos condicionalmente várias constantes em um arquivo que podemos usar no tempo de execução.

Código de Conduta

Este projeto está em conformidade com o Código de conduta do MongoDB. Ao participar, espera-se que você mantenha este código. Relate comportamento inaceitável para Community-condure@mongodb.com.

Licença

Realm JS e Realm Core são publicados sob a licença Apache 2.0.

Feedback

Se você usa o Realm e está satisfeito com ele, tudo o que solicitamos é que considere enviar um twiter mencionando @realm para compartilhar suas ideias.

E se você não gostaria, por favor, deixe-nos saber o que você gostaria de melhorar, para que possamos corrigir!

Contribuintes

Feita com contrib.Rocks.

Gerado usando TypeDoc