<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "CloudKitJS",
  "identifier" : "/documentation/CloudKitJS/CloudKit.Container",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CloudKit JS"
    ],
    "preciseIdentifier" : "cl/CloudKit.Container"
  },
  "title" : "CloudKit.Container"
}
-->

# CloudKit.Container

A [`CloudKit.Container`](/documentation/CloudKitJS/CloudKit.Container) object provides access to an app container, and through the app container, access to its databases. It also contains methods for authenticating and fetching users.

```
interface CloudKit.Container
```

## Overview

You do not create container objects yourself, nor should you subclass the [`CloudKit.Container`](/documentation/CloudKitJS/CloudKit.Container) class. You configure a container using the `CloudKit`.[`configure`](/documentation/CloudKitJS/CloudKit/configure) method and obtain a container using one of the [`CloudKit`](/documentation/CloudKitJS/CloudKit) namespace container methods.

The asynchronous methods in this class return a `Promise` object that resolves when the operation completes. For a description of the `Promise` class returned by these methods, go to [Mozilla Developer Network: Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).

This class is similar to the <doc://com.apple.documentation/documentation/CloudKit/CKContainer> class in the CloudKit framework.

## Topics

### Getting the Public and Private Databases

[`readonly attribute CloudKit.Database publicCloudDatabase;`](/documentation/CloudKitJS/CloudKit.Container/publicCloudDatabase)

The database containing the data shared by all users.

[`readonly attribute CloudKit.Database privateCloudDatabase;`](/documentation/CloudKitJS/CloudKit.Container/privateCloudDatabase)

The database containing the user’s private data.

[`readonly attribute CloudKit.Database sharedCloudDatabase;`](/documentation/CloudKitJS/CloudKit.Container/sharedCloudDatabase)

The database containing shared records accepted by the current user.

[`CloudKit.Database getDatabaseWithDatabaseScope(
	CloudKit.DatabaseScope databaseScope
);`](/documentation/CloudKitJS/CloudKit.Container/getDatabaseWithDatabaseScope)

Returns the specified (public, private, or shared) database.

### Getting the Identifier and Environment

[`readonly attribute String containerIdentifier;`](/documentation/CloudKitJS/CloudKit.Container/containerIdentifier)

The string that identifies the app’s container.

[`attribute String environment;`](/documentation/CloudKitJS/CloudKit.Container/environment)

The container environment, either development or production.

[`attribute String apnsEnvironment;`](/documentation/CloudKitJS/CloudKit.Container/apnsEnvironment)

The Apple Push Notification service (APNs) environment associated with this container.

### Authenticating Users

[`Promise<CloudKit.UserIdentity, CloudKit.CKError> setUpAuth();`](/documentation/CloudKitJS/CloudKit.Container/setUpAuth)

Determines whether a user is signed in and presents an appropriate sign in or sign out button.

[`Promise<CloudKit.UserIdentity, CloudKit.CKError> whenUserSignsIn();`](/documentation/CloudKitJS/CloudKit.Container/whenUserSignsIn)

Returns an object representing a deferred or asynchronous operation that resolves when the user signs in.

[`Promise<Undefined, CloudKit.CKError> whenUserSignsOut();`](/documentation/CloudKitJS/CloudKit.Container/whenUserSignsOut)

Returns an object representing a deferred or asynchronous operation that resolves when the user signs out.

### Discovering Users

[`Promise<CloudKit.UserIdentity, CloudKit.CKError> fetchCurrentUserIdentity();`](/documentation/CloudKitJS/CloudKit.Container/fetchCurrentUserIdentity)

Fetches information about the current user asynchronously.

[`Promise<CloudKit.UserIdentitiesResponse, CloudKit.CKError> discoverAllUserIdentities();`](/documentation/CloudKitJS/CloudKit.Container/discoverAllUserIdentities)

Fetches all user identities in the current user’s address book.

[`Promise<CloudKit.UserIdentitiesResponse, CloudKit.CKError> discoverUserIdentities(
	CloudKit.UserLookupInfo[] userLookupInfos
);`](/documentation/CloudKitJS/CloudKit.Container/discoverUserIdentities)

Fetches all users in the specified array.

[`Promise<CloudKit.UserIdentitiesResponse, CloudKit.CKError> discoverUserIdentityWithEmailAddress(
	String emailAddress
);`](/documentation/CloudKitJS/CloudKit.Container/discoverUserIdentityWithEmailAddress)

Fetches information about a single user based on the user’s email address.

[`Promise<CloudKit.UserIdentitiesResponse, CloudKit.CKError> discoverUserIdentityWithPhoneNumber(
	String phoneNumber
);`](/documentation/CloudKitJS/CloudKit.Container/discoverUserIdentityWithPhoneNumber)

Fetches information about a single user based on the user’s phone number.

[`Promise<CloudKit.UserIdentitiesResponse, CloudKit.CKError> discoverUserIdentityWithUserRecordName(
	String userRecordName
);`](/documentation/CloudKitJS/CloudKit.Container/discoverUserIdentityWithUserRecordName)

Fetches information about a single user using the record name.

### Accepting Shared Records

[`Promise<CloudKit.RecordInfosResponse, CKError> acceptShares(
	String[] shortGUIDs
);`](/documentation/CloudKitJS/CloudKit.Container/acceptShares)

Accepts a share—that is represented by a `shortGUID`—on behalf of the current user.

[`Promise<CloudKit.RecordInfosResponse, CKError> fetchRecordInfos(
	String[] shortGUIDs
);`](/documentation/CloudKitJS/CloudKit.Container/fetchRecordInfos)

Returns information about a record for which you have a `shortGUID` property.

### Receiving Notifications

[`void addNotificationListener(
	function listener
);`](/documentation/CloudKitJS/CloudKit.Container/addNotificationListener)

Adds a function to call when a push notification occurs.

[`void removeNotificationListener(
	function listener
);`](/documentation/CloudKitJS/CloudKit.Container/removeNotificationListener)

Removes a function to call when a push notification occurs.

[`void registerForNotifications();`](/documentation/CloudKitJS/CloudKit.Container/registerForNotifications)

Registers to receive push notifications.

[`void unregisterForNotifications();`](/documentation/CloudKitJS/CloudKit.Container/unregisterForNotifications)

Unregisters to receive push notifications.

[`attribute Boolean isRegisteredForNotifications;`](/documentation/CloudKitJS/CloudKit.Container/isRegisteredForNotifications)

Boolean value indicating whether this container is registered to receive push notifications.

### Logging

[`String toString();`](/documentation/CloudKitJS/CloudKit.Container/toString)

Returns a string representation of this [`CloudKit.Container`](/documentation/CloudKitJS/CloudKit.Container) object.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)