Classes relacionadas
- AsyncOpenTask
- AuthError
- BaseSubscriptionSet
- In CompatibleSyncedRealmError
- MutableSubscriptionSet
- Sessão
- inscrição
- Conjunto de assinaturas
- UserIdentity
Membros
- Pendente
- Tipo:
"pending"
ou"complete"
ou"error"
ou"superseded"
- Padrão:
pending
A atualização de assinatura foi persistida localmente, mas o servidor ainda não retornou todos os dados que corresponderam às query de assinatura atualizadas.
- Completo
- Tipo:
"pending"
ou"complete"
ou"error"
ou"superseded"
- Padrão:
complete
O servidor reconheceu a assinatura e enviou todos os dados que correspondiam às query de assinatura no momento em que o SubscriptionSet foi atualizado. O servidor agora está no modo de sincronização de estado constante, onde transmitirá as atualizações à medida que elas chegarem.
- Erro
- Tipo:
"pending"
ou"complete"
ou"error"
ou"superseded"
- Padrão:
error
O servidor retornou um erro e a sincronização está pausada para este Realm. Para visualizar o erro real, use
Subscriptions.error
.Você ainda pode usar
Realm.App.Sync.SubscriptionSet#update
para atualizar as assinaturas e, se a nova atualização não trigger um erro, a sincronização será reiniciada.- Substituído
- Tipo:
"pending"
ou"complete"
ou"error"
ou"superseded"
- Padrão:
superseded
O SubscriptionSet foi substituído por um atualizado. Isso normalmente significa que alguém chamou
Realm.App.Sync.SubscriptionSet#update
em uma instância diferente doSubscriptions
. Você não deve utilizar um SubscriptionSet substituído e, em vez disso, obter uma nova instância doRealm.subscriptions
.
enumeração representando o estado de um conjunto Realm.App.Sync.SubscriptionSet
.
Tipo:
"pending"
ou "complete"
ou "error"
ou "superseded"
propriedades:
Métodos
- aplicação opcional
- Tipo:
Realm.App
O aplicativo onde o Realm foi aberto.
- aplicação
- Tipo:
Realm.App
O aplicativo Realm.
- utilizador
- Tipo:
Realm.User
o usuário.
- utilizador
- Tipo:
Realm.User
- Valor da partição
- Tipo:
string
ounumber
ouObjectId
ounull
- aplicação opcional
- Tipo:
Realm.App
O aplicativo onde o Realm foi aberto.
- caminho opcional
- Tipo:
string
O caminho para o Realm a ser redefinido. Lança erro se a redefinição não for possível.
- aplicação
- Tipo:
Realm.App
O aplicativo Realm.
- aplicação
- Tipo:
Realm.App
o aplicativo Realm.
- logger
- Tipo:
logCallback
O chamada de resposta de registro.
- aplicação
- Tipo:
Realm.App
O aplicativo Realm.
- level
- Tipo:
LogLevel
O novo nível de registro.
- aplicação
- Tipo:
Realm.App
o aplicativo Realm
- agente do usuário
- Tipo:
string
a descrição do agente do usuário
Retorna true
se o Realm ainda tiver uma referência a qualquer sessão de sincronização, independentemente de seu estado. Se false
for retornado, significa que não existem sessões no momento.
Parâmetros:
Habilite a multiplexação de várias sessões de sincronização em uma única conexão para um aplicativo Realm. Se tiver muitos realms sincronizados abertos, o sistema pode ficar sem descritores de arquivos devido a todos os soquetes abertos para o servidor. A multiplexação de sessão foi projetada para aliviar isso, mas pode não funcionar com um servidor configurado com failover. Use somente se estiver vendo erros ao atingir o limite do descritor de arquivos e souber que está usando muitas sessões de sincronização.
Parâmetros:
[Realm.App.Sync.Session, ...]
Retorna todas as sessões de sincronização de um usuário.
Parâmetros:
[Realm.App.Sync.Session, ...]
uma série de sessões
Realm.App.Sync.Session
Retorna a sessão associada a um usuário e valor da partição.
Parâmetros:
Realm.App.Sync.Session
a sessão
Inicie um reinício do cliente. O Realm deve ser fechado antes da redefinição.
Um Realm sincronizado pode precisar ser redefinido se as comunicações com o servidor do Atlas Device Sync indicarem um erro irrecuperável que impeça de continuar com a sincronização normal. O motivo mais comum para isso é se um cliente estiver desconectado por muito tempo.
A cópia local do Realm é movida para um diretório de recuperação por segurança.
As gravações locais que não foram sincronizadas com êxito com o Atlas estarão presentes na cópia de recuperação local do Arquivo de Realm. O Realm rebaixado conterá inicialmente apenas os dados presentes no momento em que o Realm foi sincronizado no servidor.
Parâmetros:
Exemplo:
{
// Once you have opened your Realm, you will have to keep a reference to it.
// In the error handler, this reference is called `realm`
const config = {
// schema, etc.
sync: {
user,
partitionValue,
error: (session, error) => {
if (error.name === 'ClientReset') {
let path = realm.path; // realm.path will no be accessible after realm.close()
realm.close();
Realm.App.Sync.initiateClientReset(app, path);
// - open Realm at `error.config.path` (oldRealm)
// - open Realm with `config` (newRealm)
// - copy required objects from oldRealm to newRealm
// - close both Realms
}
}
}
};
}
Chamar esse método forçará o Realm a tentar reconectar o aplicativo Realm ao servidor imediatamente.
O Realm se reconectará automaticamente, mas usando o backoff exponencial. Isso significa que, se o dispositivo estiver offline por um longo período, restaurar a conexão depois que ele voltar a ficar online pode levar mais tempo do que o esperado. Em situações em que é possível detectar a condição de rede (por exemplo, Modo avião). Chamar manualmente esse método pode proporcionar uma experiência de usuário mais tranquila.
Parâmetros:
Capture o registro do cliente de sincronização. Você só pode definir o nível de registro uma vez e deve fazer isso depois de criar uma instância do aplicativo, mas antes de abrir qualquer Realms.
Parâmetros:
Exemplo:
{
const app = new Realm.App(getAppConfig());
Realm.App.Sync.setLogger(app, (level, message) => console.log(`[${level}] ${message}`));
const user = await app.logIn(credentials);
const realm = await Realm.open(getRealmConfig(user));
}
Defina o nível de registro de sincronização. Você só pode definir o nível de registro uma vez e deve fazer isso depois de criar uma instância do aplicativo, mas antes de abrir qualquer Realms.
Parâmetros:
Exemplo:
{
const app = new Realm.App(getAppConfig());
Realm.App.Sync.setLogLevel(app, "all");
const user = await app.logIn(credentials);
const realm = await Realm.open(getRealmConfig(user));
}
Defina a parte da aplicação da string agente do usuário que será enviada ao Objeto de Realm servidor quando uma sessão for criada.
Esse método só pode ser chamado até o ponto em que o primeiro Realm é aberto. Depois disso, o User-agente não poderá mais ser alterado.
Parâmetros:
Definições de tipo
- Modo
- Tipo:
string
Ou "manual" (obsoleto, consulte também
Realm.App.Sync.initiateClientReset()
), "discardUnsyncedChanges" (baixe uma nova cópia do servidor), "recuperarUnsyncedChanges" (comando remoto e local mesclado, alterações não sincronizadas) ou "recuperarOrDiscardUnsyncedChanges" (baixe uma nova cópia de servidor se a recuperação de alterações não sincronizadas não for possível)- onBefore opcional
- Tipo:
callback(realm)
ounull
chamado antes da sincronização iniciar um reinício do cliente (somente para os modos "discardUnsyncedChanges", "recuperUnsyncedChanges" ou "recuperOrDiscardUnsyncedChanges").
- onAfter opcional
- Tipo:
callback(beforeRealm, afterRealm)
ounull
chamado após a execução do reinício do cliente;
beforeRealm
eafterRealm
são instâncias do Realm antes e depois da redefinição do cliente (somente para os modos "discardUnsyncedChanges", "recuperUnsyncedChanges" ou "recuperOrDiscardUnsyncedChanges").- onFallback opcional
- Tipo:
callback(session, path)
ounull
chamado se a recuperação ou descarte falhar (somente para os modos "recuperarUnsyncedChanges" ou "recuperarOrDiscardUnsyncedChanges").
- onManual opcional
- Tipo:
callback(session, path)
ounull
executar o reinício do cliente manual - consulte também
Realm.App.Sync.initiateClientReset()
(apenas o modo "manual").- update
- Tipo:
callback(realm)
a chamada de resposta é chamada com uma instância
Realm.App.Sync~MutableSubscriptionSet
e a instânciaRealm
para permitir que você configure o conjunto inicial de assinaturas. ConsulteRealm.App.Sync.SubscriptionSet#update
para obter mais informações.- rerunOnOpen
- Tipo:
Boolean
sinalizador opcional. Se
true
, a chamada de respostaupdate
será executada novamente toda vez que o Realm for aberto (por exemplo toda vez que um usuário abrir seu aplicativo), caso contrário (por padrão), ele só será executado se o Realm ainda não existir.- level
- Tipo:
number
O nível da entrada de registro entre 0 e 8, inclusive. Use isso como um índice em
['all', 'trace', 'debug', 'detail', 'info', 'warn', 'error', 'fatal', 'off']
para obter o nome do nível.- mensagem
- Tipo:
string
A mensagem da entrada de registro.
- type
- Tipo:
string
como abrir um Realm - 'downloadBeforeOpen' para aguardar a conclusão do download ou 'penImmediately' para abrir o Realm local
- timeOut opcional
- Tipo:
number
quanto tempo esperar por um download (em ms). Padrão: infinito
- timeOutBehavior opcional
- Tipo:
string
o que fazer quando o download expira - 'opLocalRealm' para abrir o Realm local ou 'throwException' para lançar uma exceção.
- validar
- Tipo:
boolean
Indicando se os certificados SSL devem ser validados. O padrão é
true
.- CertificatePath
- Tipo:
string
Um caminho onde encontrar certificados SSL confiáveis.
- validateCertificates
- Tipo:
sslValidateCallback
Uma função de chamada de resposta usada para aceitar ou rejeitar o certificado SSL do servidor.
- name
- Tipo:
string
ouundefined
Define o nome da assinatura que está sendo adicionada. Isso permite que você consulte posteriormente a assinatura pelo nome, por exemplo, ao chamar
Realm.App.Sync.MutableSubscriptionSet#removeByName
.- jogaOnUpdate
- Tipo:
boolean
ouundefined
Por padrão, adicionar uma assinatura com o mesmo nome de uma existente, mas uma query diferente atualizará a assinatura existente com a nova query. Se
throwOnUpdate
estiver definido como verdadeiro, adicionar uma assinatura com o mesmo nome, mas uma query diferente lançará uma exceção. Adicionar uma assinatura com o mesmo nome e query é sempre um no-op.- utilizador
- Tipo:
Realm.User
Um objeto
Realm.User
obtido ligando paraRealm.App.logIn
.- ssl opcional
- Tipo:
SSLConfiguration
Configuração SSL.
- flexível
- Tipo:
boolean
Se deve usar a Flexible Sync (se
true
) ou a sincronização baseada em partição (padrão)- Valor da partição
- Tipo:
string
ounumber
ouBSON.ObjectId
ounull
O valor da chave da partição. Válido apenas se estiver usando a sincronização baseada em partição.
- Assinaturas iniciais
- Tipo:
InitialSubscriptionsConfiguration
objeto opcional para configurar a configuração de um conjunto inicial de assinaturas de Flexible Sync a serem usadas ao abrir o Realm. Válido apenas se estiver usando a Flexible Sync. Consulte
Realm.App.Sync~InitialSubscriptionsConfiguration
.- onError opcional
- Tipo:
callback(session, syncError)
Uma função de retorno de chamada que é chamada em situações de erro. A chamada de resposta recebe dois argumentos:
session
esyncError
. SesyncError.name == "ClientReset"
,syncError.path
esyncError.config
estiverem definidos esyncError.readOnly
for verdadeiro (obsoleto, consulteRealm.App.Sync~ClientResetConfiguration
). Caso contrário,syncError
pode ter até cinco propriedades:name
,message
,isFatal
,category
ecode
.- customHttpHeaders opcional
- Tipo:
Object
Um mapa (string, string) de HTTP headers personalizados.
- newRealmFileBehavior opcional
- Tipo:
OpenRealmBehaviorConfiguration
Se deve criar um novo arquivo e sincronizar em segundo plano ou aguardar a sincronização do arquivo. Se não for definido, o Realm será baixado antes de aberto.
- existenteRealmFileBehavior opcional
- Tipo:
OpenRealmBehaviorConfiguration
Se deve abrir o arquivo existente e sincronizar em segundo plano ou aguardar a conclusão da sincronização do arquivo e abrir. Se não for definido, o Realm será baixado antes de aberto.
- Reinício do cliente opcional
- Tipo:
ClientResetConfiguration
ounull
Configuração de reinício do cliente
Descreve as opções para configurar o reinício do cliente.
Tipo:
Object
propriedades:
As configurações de comportamento padrão se você quiser aguardar a conclusão do download de um Realm sincronizado antes de abri-lo.
objeto opcional para configurar a configuração de um conjunto inicial de assinaturas de Flexible Sync a serem usadas ao abrir o Realm. Se isso for especificado, Realm.open
não será resolvido até que esse conjunto de assinaturas tenha sido totalmente sincronizado com o servidor.
Exemplo:
const config: Realm.Configuration = {
sync: {
user,
flexible: true,
initialSubscriptions: {
update: (subs, realm) => {
subs.add(realm.objects('Task'));
},
rerunOnOpen: true,
},
},
// ... rest of config ...
};
const realm = await Realm.open(config);
// At this point, the Realm will be open with the data for the initial set
// subscriptions fully synchronized.
Tipo:
Object
propriedades:
Uma chamada de resposta passada para Realm.App.Sync.setLogger
ao instrumentar o cliente Atlas Device Sync com um registrador personalizado.
Parâmetros:
Tipo:
"all"
ou "trace"
ou "debug"
ou "detail"
ou "info"
ou "warn"
ou "error"
ou "fatal"
ou "off"
As configurações de comportamento padrão se você deseja abrir um Realm sincronizado imediatamente e começar a trabalhar nele. Se esta for a primeira vez que você abre o Realm, ele estará vazio enquanto os dados do servidor estão sendo baixados em segundo plano.
Especifique como abrir um Realm sincronizado.
Tipo:
Object
propriedades:
O tipo de um provedor de autenticação, usado para autenticar um usuário.
Tipo:
"anon-user"
ou "api-key"
ou "local-userpass"
ou "custom-function"
ou "custom-token"
ou "oauth2-google"
ou "oauth2-facebook"
ou "oauth2-apple"
Descreve as diferentes opções usadas para criar uma instância Realm
com o Atlas Device Sync.
Tipo:
Object
propriedades:
Opções para Realm.App.Sync.SubscriptionSet.add
Tipo:
Object
propriedades:
Descreve as diferentes opções usadas para criar uma instância Realm
com a sincronização do Atlas App Services.
Tipo:
Object