npm install kinvey-angular-sdk
Want to see how the rest of your backend is evolving? Check out the timeline.
Our SDKs are now open source! If you'd like to contribute code, suggest improvements or just take a look at how things work, check out the source on github.
kinvey-angular2-sdk
to kinvey-angular-sdk
. You can find out more information by taking a look at the Getting Started Guide.
tslib
#650me()
method. #596skip
and limit
and fetches up to 10000 items per call. #581lastLoginTime
to Kinvey metadata. #562signup()
. #430signup()
as an instance function on the User
class. #431https
to https:
. #423query.ascending()
and query.descending()
. #424query.exists()
. #425query.notContainedId()
. #426query.notEqualTo()
. #427query.or()
, query.and()
, and query.nor()
. #428TimeoutError
is will be thrown when a request times out.Network
datastore type. #414import { NgModule } from '@angular/core';
import { KinveyModule } from 'kinvey-angular-sdk';
// You will need to set the API version to 5 when you initialize the SDK
@NgModule({
imports: [
KinveyModule.init({
appKey: '<appKey>',
appSecret: '<appSecret>',
apiVersion: 5
})
]
})
export class AppModule { }
import { Component } from '@angular/core';
import { DataStoreService, DataStoreType } from 'kinvey-angular-sdk';
@Component()
export class DataStoreComponent {
collection: any;
constructor(datastoreService: DataStoreService) {
this.collection = datastoreService.collection('Books', DataStoreType.Network);
}
// Insert an array of books using the new multi insert API
save(docs: any) {
return this.collection.save(docs);
}
}
init()
returns some missing properties that were returned in v3.x. #411Auto
datastore type. This new datastore type prioritzes using the network first. If a network connection is not available then it will fall back to using the local cache until a network connection is re-established. #409Cache
datastore type. You should now use the Auto
datastore type to instead.initialize()
to initialize the SDK. You should use init()
instead.The sdk has been updated to allow you to use dependency injection to inject Kinvey services into your modules. You can find out more information by taking a look at the updated Getting Started Guide.
loginWithMIC()
to work properly when viewing a NativeScript application with the NativeScript Preview App. #377AuthorizationGrant
if null
is provded to loginWithMIC()
. #372_socialIdentity
properly with response from /me
endpoint. #374 #375Files.findById()
is called without a file id. #373x-kinvey-custom-request-properties
header when creating an entity. #360instanceId?: string
to ClientConfig
TypeScript definition. #341datastore.find()
. #342X-Kinvey-Device-Info
header nows sends the correct information. #330Kinvey.Files.downloadByUrl()
fails is now thrown properly. #333Authorization
header value when sending a request to refresh a MIC access token. #315Files.upload()
will be overridden with the size calculated by the SDK. #313_kmd.local
property on an entity before it is send to the backend. _kmd.local
is a property created by the SDK used to track if an entity was created using the SDK. #310redirectUri
response. #307User.me()
to update the active users data, any data that was deleted since the last call will also be removed from the active user stored on the device. #299onNext
function while using an observable will cause the onError
function to be called with the thrown error. The subscriber will also be unsubscribed from the observable. #302var datastore = Kinvey.DataStore.collection('books');
// Turn on for datastore instance
datastore.useDeltaSet = true; // Default is false
// Pass options.useDeltaSet to override datastore default for a pull() request.
// It will use value of datastore.useDeltaSet as default.
var promise = datastore.pull(query, { useDeltaSet: true });
// Pass options.useDeltaSet to override datastore default for a pull() request.
// It will use value of datastore.useDeltaSet as default.
var promise = datastore.find(query, { useDeltaSet: true });
redirectUri
provided to mic.login()
is a string. If the redirectUri
is not a string then an Error
will be thrown. #283kinveyFileTTL
and kinveyFileTLS
query parameters for KinveyFile references on a DataStore collection. #289var dataStore = Kinvey.DataStore.collection('pets');
dataStore.findById('3f583e9f-d064-4a25-a953-6cf0a3dc2ff1', { kinveyFileTTL: 3600, kinveyFileTLS: true })
.subscribe(function(pet) {
/*
{
"_id": "3f583e9f-d064-4a25-a953-6cf0a3dc2ff1",
"_acl": {...},
"dogName": "Bob",
"furColor": "brown with black spots",
"pawPrintPicture": {
"_type": "KinveyFile",
"_id": "325620e4-93dd-4a26-9f84-8a5e62c0db11",
"_filename": "bobsPawPrint.png",
"_acl": { ... },
"_downloadURL": <Google Cloud Storage download URL>,
"_expiresAt": "2018-06-18T23:07:23.394Z"
}
}
*/
}, function(error) {
// ...
});
instanceId
as a config option to init()
. This will setup the backend and Mobile Identity Connect API urls to use your instanceId
properly. #278Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>'
instanceId: '<my-subdomain>'
});
Object.keys()
in Query.isSupportedOffline()
. #245es6-promise
for promises in live service related files instead of native promises. #272v3
. #259 #268The Kinvey backend imposes a limit of 10,000 entities on data requests. If your app needs to pull a larger number of entities to the cache, you can request the SDK to "auto-paginate". The SDK will then retrieve the entire set of entities page by page. This feature only applies to Cache and Sync stores.
var dataStore = Kinvey.DataStore.collection('books', Kinvey.DataStoreType.Sync);
//Pull the entire collection page by page.
var promise = dataStore.pull(null, { autoPagination: true })
.then(function onSuccess(count) {
// "count" represents the number of entities retrieved
}).catch(function onError(error) {
// ...
});
DataStore.pull()
returned an array of the retrieved entities. With this release, the response of pull
has changed to the count of retrieved entities.
If you need the array of entities retrieved by a pull
in your app, you should call find
after the pull
has completed.
CacheStore
methods create()
and update()
can now handle more concurrent requests.CacheStore.delete()
method now applies the same query both locally and against the backend, instead of making separate "by-id" requests for entities found in the cache.clear()
method for a CacheStore
or SyncStore
now clears the sync queue.WebSQL
are now cached. #241Number.isNaN()
so we added a polyfill. #243LiveServiceFacade
instead of LiveService
. #254_id
field not returned when specifying fields for a query #233Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>'
storage: Kinvey.StorageProvider.WebSQL // or [Kinvey.StorageProvider.WebSQL, Kinvey.StorageProvider.IndexedDB]
});
// Possible Values
enum StorageProvider {
WebSQL,
IndexedDB,
LocalStorage,
SessionStorage,
Memory
}
var datastore = Kinvey.DataStore.collection('books', Kinvey.DataStore.Sync, { tag: 'Kinvey' }); // Tag the datastore
var query = new Kinvey.Query().equalTo('author', 'Kinvey');
datastore.pull(query)
.then(function() {
return datastore.find().toPromise();
})
.then(function(books) {
// all of these books have Kinvey as their author
});
null
or undefined
value for the sort field. #205Object.prototype.assign()
. #225null
and undefined
values to be used in a equal
and notEqual
query #201LocalStorageAdapter
and SessionStorageAdapter
.micId
to be added to the client_id
value sent for a Mobile Identity Connect request.hard
equal to false
.Kinvey.initialize()
. Please use Kinvey.init()
instead. If you use Kinvey.init()
you might not have an active user even though you had already logged in. To fix this, use Kinvey.initialize()
to move the active user to the correct storage. From then on you will be able to use Kinvey.init()
and retrieve your active user. Kinvey.init()
does not return a promise and is synchronous.// Will return the shared client instance
Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>'
});
_id
for an entity. #134es6-promise
to prevent Promise Undefiend
errors on environments that do not have a native promise implementation. #135message
property properly when logging errors to the console. #136try/catch
around openDatabase()
. This allows any errors thrown when opening a new database connection to WebSQL be caught and used to reject the pending promise. #17https:
will automatically be used when a custom hostname is missing a protocol. #129null
for a short period of time when setting the active user. #128usePopupClass()
as a static function to the User
class for registering a popup class to be used for MIC authentication.operation
property to results returned when pushing sync items to the backend. The property either be equal to Kinvey.SyncOperation.Create
, Kinvey.SyncOperation.Update
, or Kinvey.SyncOperation.Delete
.var store = Kinvey.DataStore.collection('books', Kinvey.DataStoreType.Sync);
var query = new Kinvey.Query().equalTo('title', 'Kinvey');
store.remove(query)
.then(function(response) {
// response.count contains the count of books removed matching the query
return store.push();
})
.then(function(results) {
// Results is an array of responses from the pushing the sync items.
// Each result object now contains an operation set to Kinvey.SyncOperation.Delete
})
restore()
static function on the User
class to throw an error whenever it is called. This function required the master secret for an application. We strongly advise not to do this in your application.toJSON()
functions have now been replaced by toPlainObject()
. The returned result is the exact same.save()
, create()
, and update()
on datastore instances to no longer accept an array of entities. See the example below to see how to save an array of entities.var books = [{ name: 'book1' }, { name: 'book2' }];
var store = Kinvey.DataStore.collection('books');
var promises = [];
// Loop through each of the books and save them one by one.
// You can now reference a book easily in the event an error
// occurs when saving a book.
books.forEach(function(book) {
var promise = store.save(book)
.catch(function(error) {
console.log('Error saving book ' + book.name);
});
promises.push(promise);
});
// Using a third party library wait for all the promises to complete
RSVP.Promise.all(promises)
.then(function(books) {
// ...
});
remove()
and removeById()
on datastore instances to now return the count of entities removed and not the actual entity removed.var store = Kinvey.DataStore.collection('books');
// Remove books using a query
var query = new Kinvey.Query().equalTo('title', 'Kinvey');
store.remove(query)
.then(function(response) {
// response.count contains the count of books removed matching the query
});
// Remove a book using an id
store.removeById('1')
.then(function(response) {
// response.count will equal 1 if the book was removed or 0 if the book was not removed
});
init()
static function on Kinvey
namespace. This was deprecated with v3.3.3.baseUrl
, protocol
, and host
properties on a client
instance. These were deprecated with v3.0.0.syncCount()
and purge()
on CacheStore
and SyncStore
instances. These were deprecated with v3.2.0.Kinvey.Users
and Kinvey.UserStore
. These were deprecated with v3.2.0.Kinvey.Files
.data
property for Kinvey.User
type definitions.We recommend using the latest version.
Version | Download | Date |
---|---|---|
9.0.0 | Jul 25, 2023 | |
8.0.0 | Jul 15, 2022 | |
7.0.3 | Jul 14, 2022 | |
7.0.2 | Apr 28, 2022 | |
7.0.1 | Apr 27, 2022 | |
7.0.0 | Oct 25, 2021 | |
6.0.0 | Jul 30, 2021 | |
5.1.4 | Jun 18, 2022 | |
5.1.2 | May 26, 2022 | |
5.1.1 | Apr 12, 2021 | |
5.1.0 | Apr 8, 2021 | |
5.0.1 | Jul 22, 2020 | |
5.0.0 | Jul 10, 2020 | |
4.2.3 | Jul 22, 2019 | |
4.2.2 | Jul 5, 2019 | |
4.2.1 | Jun 19, 2019 | |
4.2.0 | Jun 7, 2019 | |
4.1.0 | May 31, 2019 | |
4.0.0 | Download | May 3, 2019 |
3.12.4 | Download | Feb 12, 2019 |
3.12.2 | Download | Nov 2, 2018 |
3.12.1 | Download | Oct 4, 2018 |
3.12.0 | Download | Oct 3, 2018 |
3.11.7 | Download | Sep 20, 2018 |
3.11.6 | Download | Aug 2, 2018 |
3.11.5 | Download | Jul 25, 2018 |
3.11.4 | Download | Jul 9, 2018 |
3.11.3 | Download | Jun 29, 2018 |
3.11.2 | Download | Jun 15, 2018 |
3.11.1 | Download | Jun 1, 2018 |
3.11.0 | Download | May 23, 2018 |
3.10.3 | Download | May 4, 2018 |
3.10.2 | Download | Mar 29, 2018 |
3.10.1 | Download | Mar 13, 2018 |
3.10.0 | Download | Feb 26, 2018 |
3.9.10 | Download | Feb 9, 2018 |
3.9.9 | Download | Jan 26, 2018 |
3.9.6 | Download | Jan 12, 2018 |
3.9.4 | Download | Dec 14, 2017 |
3.9.0 | Sep 24, 2017 | |
3.8.0 | Download | Aug 24, 2017 |
3.5.2 | Jul 8, 2017 | |
3.5.1 | Jun 30, 2017 | |
3.5.0 | Download | May 2, 2017 |
3.4.5 | Download | Apr 13, 2017 |
3.4.4 | Mar 27, 2017 |