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

Conectar a um Backend do Atlas App Services - Swift SDK

Nesta página

  • Acesse o cliente do aplicativo
  • Configuração
  • Sincronizar o compartilhamento de conexão
  • Opções de tempo limite de sincronização
  • Conecte-se a um servidor MongoDB específico
  • Conecte-se a um servidor MongoDB diferente durante o tempo de execução
  • Sistemas operacionais suportados

O cliente do aplicativo é a interface para o backend do App Services. It provides access to the authentication functionality, functions, querying a MongoDB Atlas data source, and Device Sync.

Observação

Manifesto de privacidade da Apple

The SDK's Apple privacy manifest does not cover connecting to Atlas, or any usage of data through the App client. Se a sua aplicação se conectar ao App Services e você pretende distribuí-la por meio da App Store da Apple, talvez seja necessário fornecer suas próprias divulgações no manifesto de privacidade da Apple da aplicação.

Para obter mais informações, consulte o Manifesto de Privacidade da Apple.

Passe o ID do aplicativo para seu aplicativo, que você pode encontrar na interface do usuário do App Services.

let app = App(id: YOUR_APP_SERVICES_APP_ID) // replace YOUR_APP_SERVICES_APP_ID with your App ID

Você pode passar um objeto de configuração para App:

let configuration = AppConfiguration(
baseURL: "https://services.cloud.mongodb.com", // You can customize base URL
transport: nil, // Custom RLMNetworkTransportProtocol
defaultRequestTimeoutMS: 30000
)
let app = App(id: "my-app-services-app-id", configuration: configuration)

Você pode criar várias instâncias do cliente de aplicativo para se conectar a vários aplicativos. Todas as instâncias de cliente de aplicativo que compartilham a mesma ID de aplicativo usam a mesma conexão subjacente.

Importante

Alterando uma configuração de aplicativo após inicializar o aplicativo

Começando com o Swift SDK versão 10.46.0, você pode alterar um baseURL na configuração do aplicativo e o cliente do aplicativo usará o novo baseURL. Nas versões 10.45.3 e anteriores do Swift SDK, quando você inicializa o cliente do aplicativo, a configuração é armazenada em cache internamente. A tentativa de fechar uma aplicação e reabri-la com uma configuração alterada dentro do mesmo processo não tem efeito. O cliente continua usando a configuração em cache.

Novo na versão 10.41.0.

Você pode definir o conjunto enableSessionMultiplexing no AppConfiguration para especificar se o Realm Swift SDK deve abrir uma conexão com o servidor para cada Realm sincronizado ou compartilhar uma conexão com o servidor para todos os domínios sincronizados.

Se você não especificar um valor para esse bool, o Realm assumirá como padrão o compartilhamento de uma única conexão por usuário do App Services para todos os realms sincronizados.

let configuration = AppConfiguration(enableSessionMultiplexing: false)
let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)

Novo na versão 10.41.0.

Você pode definir várias opções de tempo limite de sincronização no AppConfiguration. A propriedade syncTimeouts pode aceitar um objeto SyncTimeoutOptions para substituir os valores padrão para essas configurações.

Para obter uma lista completa das configurações de tempo limite disponíveis e suas definições, consulte RLMSyncTimeoutOptions.

let syncTimeoutOptions = SyncTimeoutOptions(
connectTimeout: 30000,
connectionLingerTime: 5000,
pingKeepalivePeriod: 10000,
pongKeepaliveTimeout: 10000,
fastReconnectLimit: 30000
)
let configuration = AppConfiguration(syncTimeouts: syncTimeoutOptions)
let app = App(id: YOUR_APP_SERVICES_APP_ID, configuration: configuration)

Por padrão, o Atlas Device SDK se conecta ao Atlas usando o baseURL global de https://services.cloud.mongodb.com. Em alguns casos, você pode querer se conectar a um servidor diferente:

  • Seu App Services App usa o sistema local e você deseja se conectar diretamente a um baseURL local em sua região.

Você pode especificar um baseURL no AppConfiguration:

// Specify a baseURL to connect to a server other than the default.
// In this case, an Edge Server instance running on the device.
let configuration = AppConfiguration(baseURL: "http://localhost:80")
let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration)

Novidades na versão 10.50.0.

Em alguns casos, você pode querer alterar o baseURL enquanto o aplicativo está em execução. Para alterar o baseURL durante o tempo de execução, chame o método app.updateBaseUrl(to: ) :

// Specify a baseURL to connect to a server other than the default.
// In this case, an Edge Server instance running on the device.
let configuration = AppConfiguration(baseURL: "http://localhost:80")
let edgeApp = App(id: EDGE_SERVER_APP_ID, configuration: configuration)
// You can check the `baseURL` of an app to define app logic.
if edgeApp.baseURL == "http://localhost:80" {
print("Client app is currently connected to a local Edge Server instance")
}
// ... log in a user and use the app...
// ... some time later...
try await edgeApp.updateBaseUrl(to: "https://services.cloud.mongodb.com")

Essa API é experimental, portanto, você deve usar a importação experimental no arquivo em que deseja usar essa API:

@_spi(RealmSwiftExperimental) import RealmSwift

Se você quiser alterar o baseURL depois de fazer login em um usuário e abrir um banco de banco de dados sincronizado, o aplicativo deverá executar uma reinício do cliente. Execute estas etapas no seu código:

  1. Pause a sessão de sincronização.

  2. Atualize o baseURL chamando o método app.updateBaseUrl(to: ) .

  3. Autentique e faça o login do usuário novamente com o novo baseURL.

  4. Abra um banco de dados de dados sincronizado extraindo dados do novo servidor.

Tanto o servidor quanto o cliente devem estar online para que o usuário se autentique e se conecte ao novo servidor. Se o servidor não estiver online ou o cliente não tiver uma conexão de rede, o usuário não poderá autenticar e abrir o banco de dados de dados.

O Realm Swift SDK permite a conexão com um Atlas App Services para uma variedade de sistemas operacionais da Apple, dependendo da versão do Xcode e da versão do Realm Swift SDK . A conexão com um App Services App permite:

  • Autenticação e gerenciamento de usuários

  • Chamando uma Atlas Function

  • Executando queries de uma fonte de dados do MongoDB Atlas

  • Device Sync

Para obter informações atuais sobre sistemas operacionais suportados, consulte Suporte ao sistema operacional.

Neste momento, o Realm Swift SDK não permite a conexão a um App Services App do watchOS.

Voltar

Serviços de aplicativos