MatrixSdkDatabase class
Database based on SQlite3 on native and IndexedDB on web. For native you
have to pass a Database
object, which can be created with the sqflite
package like this:
final database = await openDatabase('path/to/your/database');
WARNING: For android it seems like that the CursorWindow is too small for large amounts of data if you are using SQFlite. Consider using a different package to open the database like sqflite_sqlcipher or sqflite_common_ffi. Learn more at: https://github.com/famedly/matrix-dart-sdk/issues/1642#issuecomment-1865827227
- Inheritance
-
- Object
- DatabaseApi
- MatrixSdkDatabase
Constructors
- MatrixSdkDatabase(String name, {Database? database, dynamic idbFactory, DatabaseFactory? sqfliteFactory, int maxFileSize = 0, @Deprecated('Breaks support for web standalone. Use [fileStorageLocation] instead.') dynamic fileStoragePath, Uri? fileStorageLocation, Duration? deleteFilesAfterDuration})
Properties
- database ↔ Database?
-
getter/setter pair
- deleteFilesAfterDuration ↔ Duration?
-
latefinalinherited
- fileStorageLocation ↔ Uri?
-
latefinalinherited
- fileStoragePath → Object?
-
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- idbFactory → dynamic
-
Custom IdbFactory used to create the indexedDB. On IO platforms it would
lead to an error to import "dart:indexed_db" so this is dynamically
typed.
final
- maxFileSize → int
-
final
- name → String
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sqfliteFactory → DatabaseFactory?
-
Custom SQFlite Database Factory used for high level operations on IO
like delete. Set it if you want to use sqlite FFI.
final
- supportsFileStoring → bool
-
no setterinherited
Methods
-
addSeenDeviceId(
String userId, String deviceId, String publicKeys) → Future< void> -
override
-
addSeenPublicKey(
String publicKey, String deviceId) → Future< void> -
override
-
clear(
) → Future< void> -
override
-
clearCache(
) → Future< void> -
override
-
clearSSSSCache(
) → Future< void> -
override
-
close(
) → Future< void> -
override
-
delete(
) → Future< void> -
Deletes the whole database. The database needs to be created again after
this.
override
-
deleteFromToDeviceQueue(
int id) → Future< void> -
override
-
deleteOldFiles(
int savedAt) → Future< void> -
inherited
-
deleteTimelineForRoom(
String roomId) → Future< void> -
override
-
deviceIdSeen(
dynamic userId, dynamic deviceId) → Future< String?> -
override
-
exportDump(
) → Future< String> -
override
-
forgetRoom(
String roomId) → Future< void> -
override
-
getAccountData(
) → Future< Map< String, BasicEvent> > -
override
-
getAllInboundGroupSessions(
) → Future< List< StoredInboundGroupSession> > -
override
-
getAllOlmSessions(
) → Future< Map< String, Map> > -
override
-
getClient(
String name) → Future< Map< String, dynamic> ?> -
override
-
getEventById(
String eventId, Room room) → Future< Event?> -
override
-
getEventIdList(
Room room, {int start = 0, bool includeSending = false, int? limit}) → Future< List< String> > -
override
-
getEventList(
Room room, {int start = 0, bool onlySending = false, int? limit}) → Future< List< Event> > -
override
-
getFile(
Uri mxcUri) → Future< Uint8List?> -
inherited
-
getInboundGroupSession(
String roomId, String sessionId) → Future< StoredInboundGroupSession?> -
override
-
getInboundGroupSessionsToUpload(
) → Future< List< StoredInboundGroupSession> > -
override
-
getLastSentMessageUserDeviceKey(
String userId, String deviceId) → Future< List< String> > -
override
-
getOlmSessions(
String identityKey, String userId) → Future< List< OlmSession> > -
override
-
getOlmSessionsForDevices(
List< String> identityKeys, String userId) → Future<List< OlmSession> > -
override
-
getOutboundGroupSession(
String roomId, String userId) → Future< OutboundGroupSession?> -
override
-
getPresence(
String userId) → Future< CachedPresence?> -
override
-
getRoomList(
Client client) → Future< List< Room> > -
override
-
getSingleRoom(
Client client, String roomId, {bool loadImportantStates = true}) → Future< Room?> -
override
-
getSSSSCache(
String type) → Future< SSSSCache?> -
override
-
getToDeviceEventQueue(
) → Future< List< QueuedToDeviceEvent> > -
override
-
getUnimportantRoomEventStatesForRoom(
List< String> events, Room room) → Future<List< Event> > -
override
-
getUser(
String userId, Room room) → Future< User?> -
override
-
getUserDeviceKeys(
Client client) → Future< Map< String, DeviceKeysList> > -
override
-
getUserProfile(
String userId) → Future< CachedProfileInformation?> -
override
-
getUsers(
Room room) → Future< List< User> > -
override
-
getWellKnown(
) → Future< DiscoveryInformation?> -
override
-
importDump(
String export) → Future< bool> -
override
-
insertClient(
String name, String homeserverUrl, String token, DateTime? tokenExpiresAt, String? refreshToken, String userId, String? deviceId, String? deviceName, String? prevBatch, String? olmAccount) → Future< int> -
override
-
insertIntoToDeviceQueue(
String type, String txnId, String content) → Future< int> -
Please do
jsonEncode(content)
in your code to stay compatible with auto generated methods here.override -
markInboundGroupSessionAsUploaded(
String roomId, String sessionId) → Future< void> -
override
-
markInboundGroupSessionsAsNeedingUpload(
) → Future< void> -
override
-
markUserProfileAsOutdated(
String userId) → Future< void> -
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
open(
) → Future< void> -
publicKeySeen(
String publicKey) → Future< String?> -
override
-
removeEvent(
String eventId, String roomId) → Future< void> -
override
-
removeOutboundGroupSession(
String roomId) → Future< void> -
override
-
removeUserCrossSigningKey(
String userId, String publicKey) → Future< void> -
override
-
removeUserDeviceKey(
String userId, String deviceId) → Future< void> -
override
-
setBlockedUserCrossSigningKey(
bool blocked, String userId, String publicKey) → Future< void> -
override
-
setBlockedUserDeviceKey(
bool blocked, String userId, String deviceId) → Future< void> -
override
-
setLastActiveUserDeviceKey(
int lastActive, String userId, String deviceId) → Future< void> -
override
-
setLastSentMessageUserDeviceKey(
String lastSentMessage, String userId, String deviceId) → Future< void> -
override
-
setRoomPrevBatch(
String? prevBatch, String roomId, Client client) → Future< void> -
override
-
setVerifiedUserCrossSigningKey(
bool verified, String userId, String publicKey) → Future< void> -
override
-
setVerifiedUserDeviceKey(
bool verified, String userId, String deviceId) → Future< void> -
override
-
storeAccountData(
String type, String content) → Future< void> -
override
-
storeEventUpdate(
EventUpdate eventUpdate, Client client) → Future< void> -
Stores an EventUpdate object in the database. Must be called inside of
transaction.
override
-
storeFile(
Uri mxcUri, Uint8List bytes, int time) → Future< void> -
inherited
-
storeInboundGroupSession(
String roomId, String sessionId, String pickle, String content, String indexes, String allowedAtIndex, String senderKey, String senderClaimedKey) → Future< void> -
override
-
storeOlmSession(
String identityKey, String sessionId, String pickle, int lastReceived) → Future< void> -
override
-
storeOutboundGroupSession(
String roomId, String pickle, String deviceIds, int creationTime) → Future< void> -
override
-
storePresence(
String userId, CachedPresence presence) → Future< void> -
override
-
storePrevBatch(
String prevBatch) → Future< void> -
override
-
storeRoomUpdate(
String roomId, SyncRoomUpdate roomUpdate, Event? lastEvent, Client client) → Future< void> -
Stores a RoomUpdate object in the database. Must be called inside of
transaction.
override
-
storeSSSSCache(
String type, String keyId, String ciphertext, String content) → Future< void> -
override
-
storeSyncFilterId(
String syncFilterId) → Future< void> -
override
-
storeUserCrossSigningKey(
String userId, String publicKey, String content, bool verified, bool blocked) → Future< void> -
override
-
storeUserDeviceKey(
String userId, String deviceId, String content, bool verified, bool blocked, int lastActive) → Future< void> -
override
-
storeUserDeviceKeysInfo(
String userId, bool outdated) → Future< void> -
override
-
storeUserProfile(
String userId, CachedProfileInformation profile) → Future< void> -
override
-
storeWellKnown(
DiscoveryInformation? discoveryInformation) → Future< void> -
override
-
toString(
) → String -
A string representation of this object.
inherited
-
transaction(
Future< void> action()) → Future<void> -
override
-
updateClient(
String homeserverUrl, String token, DateTime? tokenExpiresAt, String? refreshToken, String userId, String? deviceId, String? deviceName, String? prevBatch, String? olmAccount) → Future< void> -
override
-
updateClientKeys(
String olmAccount) → Future< void> -
override
-
updateInboundGroupSessionAllowedAtIndex(
String allowedAtIndex, String roomId, String sessionId) → Future< void> -
override
-
updateInboundGroupSessionIndexes(
String indexes, String roomId, String sessionId) → Future< void> -
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited