[!NOTA] O Realm agora é Atlas Device SDK - Saiba mais
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).
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.
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.
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.
Typescript é uma alternativa popular ao JavaScript, pois fornece digitação estática. Nosso suporte ao Typescript consiste em duas partes
@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 });
}
}
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
.
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.
Consulte CONTRIBUTING.md para obter mais detalhes!
Debug with Chrome
no menu de depuração.Para obter instruções sobre como compilar o SDK a partir da origem, consulte o arquivo build.md .
É 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.
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
.
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.
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.
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.
expo-dev-client
:npm install expo-dev-client
npx expo run:ios
npx expo run:android
npx expo start --dev-client
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.
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:
Além disso, escrevemos condicionalmente várias constantes em um arquivo que podemos usar no tempo de execução.
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.
Realm JS e Realm Core são publicados sob a licença Apache 2.0.
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!
Feita com contrib.Rocks.
Gerado usando TypeDoc