Realm Xamarin v4.3.0 Release Notes

Release Date: 2020-02-05 // 23 days ago
  • ✨ Enhancements

    • πŸ”¦ Exposed an API to configure the userId and isAdmin of a user when creating credentials via Credentials.CustomRefreshToken. Previously these values would be inferred from the JWT itself but as there's no way to enforce the server configuration over which fields in the JWT payload represent the userId and the isAdmin field, it is now up to the consumer to determine the values for these.
    • πŸ‘Œ Improved logging and error handling for SSL issues on Apple platforms.

    πŸ›  Fixed

    • Realm objects can now be correctly serialized with System.Runtime.Serialization.Formatters and System.Xml.Serialization serializers. (Issue #1913)
      The private state fields of the class have been decorated with [NonSerialized] and [XmlIgnore] attributes so that eager opt-out
      serializers do not attempt to serialize fields such as Realm and ObjectSchema which contain handles to unmanaged data.
    • πŸ›  Fixed an issue that would result in a compile error when [Required] is applied on IList<string> property. (Contributed by braudabaugh)
    • πŸ›  Fixed an issue that prevented projects that include the Realm NuGet package from being debugged. (PR #1927)
    • πŸ”€ The sync client would fail to reconnect after failing to integrate a changeset. The bug would lead to further corruption of the client’s Realm file. (since 3.0.0).
    • πŸ›  The string-based query parser (results.Filter(...)) used to need the class_ prefix for class names when querying over backlink properties. This has been fixed so that only the public ObjectSchema name is necessary. For example, @links.class_Person.Siblings becomes @links.Person.Siblings.
    • πŸ›  Fixed an issue where ClientResyncMode.DiscardLocalRealm wouldn't reset the schema.

    Compatibility

    • Realm Object Server: 3.23.1 or later.

    Internal

    • ⬆️ Upgraded Sync from 4.7.5 to 4.9.5 and Core from 5.23.3 to 5.23.8.

Previous changes from v4.2.0

  • ✨ Enhancements

    • βž• Added int IndexOf(object) and bool Contains(object) to the IRealmCollection interface. (PR #1893)
    • πŸ”¦ Exposed an API - SyncConfigurationBase.EnableSessionMultiplexing() that allows toggling session multiplexing on the sync client. (PR 1896)
    • βž• Added support for faster initial downloads when using Realm.GetInstanceAsync. (Issue 1847)
    • βž• Added an optional cancellationToken argument to Realm.GetInstanceAsync enabling clean cancelation of the in-progress download. (PR 1859)
    • βž• Added support for Client Resync which automatically will recover the local Realm in case the server is rolled back. This largely replaces the Client Reset mechanism for fully synchronized Realms. Can be configured using FullSyncConfiguration.ClientResyncMode. (PR #1901)
    • Made the createUser argument in Credentials.UsernamePassword optional. If not specified, the user will be created or logged in if they already exist. (PR #1901)
    • πŸ‘‰ Uses Fody 6.0.0, which resolves some of the compatibility issues with newer versions of other Fody-based projects. (Issue #1899)

    πŸ›  Fixed

    • πŸ›  Fixed an infinite recursion when calling RealmCollectionBase<T>.IndexOf. (Issue #1892)

    Compatibility

    • Realm Object Server: 3.23.1 or later.

    Internal

    • ⬆️ Upgraded Sync from 4.7.0 to 4.7.1.
    • πŸ”€ Implemented direct access to sync workers on Cloud, bypassing the Sync Proxy: the binding will override the sync session's url prefix if the token refresh response for a realm contains a sync worker path field.