Plugin Flutter para o Couchbase Lite Community Edition, um banco de dados NoSQL leve embutido com sincronização em tempo real e suporte offline no Android e no iOS.
Orientação gerada a partir de informações públicas. Apenas para referência.
Couchbase Lite é um banco de dados NoSQL leve e embutido para aplicativos Flutter, permitindo armazenamento offline de dados e sincronização em tempo real entre dispositivos. Projetado para plataformas móveis, oferece suporte a Android e iOS com capacidades de sincronização perfeitas por meio do Couchbase Sync Gateway. O plugin integra a edição Community do Couchbase Lite em projetos Flutter, permitindo que desenvolvedores armazenem dados estruturados localmente e sincronizem alterações quando a conectividade for restaurada. Ideal para aplicações que exigem funcionalidade offline confiável e dados consistentes entre dispositivos.
Casos de uso
Aplicativos móveis com foco em offline
Sincronização de dados em tempo real
Persistência de dados locais em aplicativos móveis
Aplicativos híbridos que precisam de banco de dados local
Consistência de dados entre dispositivos
Principais recursos
Banco de dados NoSQL embutido
Sincronização em tempo real com o Sync Gateway
Suporte offline robusto
Multiplataforma (Android e iOS)
Desempenho leve e rápido
Indicado para
Desenvolvedores de aplicativos móveis que precisam de dados offline
Aplicativos que exigem sincronização em tempo real
Startups construindo recursos com capacidade offline
Equipes usando modelos de dados NoSQL
Projetos com infraestrutura de back-end limitada
Considerações
Requer o Couchbase Sync Gateway para sincronização completa
Limitado às plataformas Android e iOS
Configuração adicional para integração com o sync gateway
Curva de aprendizado para o design de esquema NoSQL
Sobrecarga potencial para necessidades simples de dados
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
couchbase_lite plugin
A Flutter plugin for Couchbase Lite Community Edition. An embedded lightweight, noSQL database with live synchronization and offline support on Android and iOS.
The goal of this project is to align this library with the Swift SDK API for Couchbase Lite.
Note: This plugin is still under development, and some APIs might not be available yet.
Feedback and Pull Requests are most welcome!
Note: Included in this example is sync-gateway-config.json (Login => u: foo, p: bar)
Usage example
Below is an example for the database using the BLoC pattern ( View <-> BLoC <-> Repository <-> Database )
// Initialize the databasetry {
database = awaitDatabase.initWithName("gettingStarted");
} onPlatformException {
return"Error initializing database";
}
// Create a new document (i.e. a record) in the database.var mutableDoc = MutableDocument()
.setDouble("version", 2.0)
.setString("type", "SDK");
// Save it to the database.try{
await database.saveDocument(mutableDoc);
} onPlatformException {
return"Error saving document";
}
// Update a document.
mutableDoc = (await database.document(mutableDoc.id))?.toMutable()?.setString("language", "Dart");
if (mutableDoc != null) {
// Save it to the database.try {
await database.saveDocument(mutableDoc);
vardocument = await database.document(mutableDoc.id);
// Log the document ID (generated by the database)// and propertiesprint("Document ID :: ${document.id}");
print("Learning ${document.getString("language")}");
} onPlatformException {
return"Error saving document";
}
}
// Create a query to fetch documents of type SDK.var query = QueryBuilder
.select([SelectResult.all().from("mydocs")])
.from("gettingStarted", as: "mydocs")
.where(Expression.property("type").from("mydocs").equalTo(Expression.string("SDK")));
// Run the query.try {
var result = await query.execute();
print("Number of rows :: ${result.allResults().length}");
} onPlatformException {
return"Error running the query";
}
// Note wss://10.0.2.2:4984/my-database is for the android simulator on your local machine's couchbase database// Create replicators to push and pull changes to and from the cloud.ReplicatorConfiguration config =
ReplicatorConfiguration(database, "ws://10.0.2.2:4984/beer-sample");
config.replicatorType = ReplicatorType.pushAndPull;
config.continuous = true;
// Add authentication.
config.authenticator = BasicAuthenticator("foo", "bar");
// Create replicator (make sure to add an instance or static variable named replicator)var replicator = Replicator(config);
// Listen to replicator change events.
_listenerToken = replicator.addChangeListener((ReplicatorChange event) {
if (event.status.error != null) {
print("Error: " + event.status.error);
}
print(event.status.activity.toString());
});
// Start replication.await replicator.start();
For this getting started guide, you will need to allow using ws protocol.
As of Android Pie, version 9, API 28, cleartext support is disabled, by default. Although wss: protocol URLs are not affected, in order to use the ws: protocol, applications must target API 27 or lower, or must configure application network security as described here.
App Transport Security is enabled by default since iOS 9 and enforces applications to use HTTPS exclusively. For this getting started guide, you will disable it but we recommend to enable it in production (and enable HTTPS on Sync Gateway). In the Xcode navigator, right-click on Info.plist and open it as a source file.
Append the following inside of the XML tags to disable ATS.