StitchClient can longer be constructed directly. Instead, StitchClientFactory has been introduced to asynchronously perform any initialization steps needed to create a StitchClient. StitchClientFactory has a function called create that will return a Promise that will resolve with a StitchClient after initialization. The resolved client should be used for the lifetime of the application.
PromiseKit is now the Promise library of choice. StitchTask has been completely removed. Please see https://github.com/mxcl/PromiseKit/ for more information.
// old, 2.x.x usage import StitchCore let stitchClient = StitchClient(appId: "<app-id>"); stitchClient.anonymousAuth().then { authedId in print(authedId) } // app initialization code // new, 3.x.x usage import StitchCore let stitchClientPromise = StitchClientFactory.create(appId: "<app-id>") var stitchClient: StitchClient! stitchClientPromise.then { client in stitchClient = client return stitchClient.login() }.done { _ in initializeApp(stitchClient) }
Since the StitchClient is only available after the Promise resolves, initialization of an app should be deferred until this time and the client reference should be passed to some initialization component/function.
NOTE: Attempting to construct a StitchClient without using StitchClientFactory will result in an error being thrown.
StitchClients (with different associated applications).Previously, logging in with a provider while already logging caused no log in to happen which proved to be confusing. These new semantics are in effect:
isAuthenticated() method to the StitchClient class. This method should be used to check if any authentication work needs to happen. It returns a boolean declaring whether or not the current client is authenticated.