create static method
Future<Chat>
create({
- required String databasePath,
- required ChatAdapter adapter,
- required ChatIdentityProvider identityProvider,
- DatabaseEncryptionConfig? encryptionConfig,
- bool? autoConnect,
Creates, initializes, and optionally connects a Chat instance.
This is the simplest way to get started with the Chat SDK.
The SDK can initialize before login. User-scoped APIs become active when
identityProvider returns or emits a user id.
// Early initialization (at app startup)
final chat = await Chat.create(
databasePath: 'chat.db',
adapter: MyBackendAdapter(),
identityProvider: MyIdentityProvider(),
);
Implementation
static Future<Chat> create({
required String databasePath,
required ChatAdapter adapter,
required ChatIdentityProvider identityProvider,
DatabaseEncryptionConfig? encryptionConfig,
bool? autoConnect,
}) async {
final config = ChatConfig(
databasePath: databasePath,
);
final registry = ChatRegistry.withAdapter(
config: config,
adapter: adapter,
identityProvider: identityProvider,
databaseEncryptionConfig: encryptionConfig,
);
final chat = Chat(registry);
await chat.initialize();
final shouldAutoConnect = autoConnect ?? false;
if (shouldAutoConnect) {
await chat.connect();
}
return chat;
}