Class: Parse::Installation

Inherits:
Object show all
Defined in:
lib/parse/model/classes/installation.rb,
lib/parse/stack/generators/templates/model_installation.rb

Overview

This class represents the data and columns contained in the standard Parse `_Installation` collection. This class is also responsible for managing the device tokens for mobile devices in order to use push notifications. All queries done to send pushes using Parse::Push are performed against the Installation collection. An installation object represents an instance of your app being installed on a device. These objects are used to store subscription data for installations which have subscribed to one or more push notification channels.

The default schema for Installation is as follows:

class Parse::Installation < Parse::Object
   # See Parse::Object for inherited properties...

  property :gcm_sender_id, field: :GCMSenderId
  property :app_identifier
  property :app_name
  property :app_version
  property :badge, :integer
  property :channels, :array
  property :device_token
  property :device_token_last_modified, :integer
  property :device_type, enum: [:ios, :android, :winrt, :winphone, :dotnet]
  property :installation_id
  property :locale_identifier
  property :parse_version
  property :push_type
  property :time_zone, :timezone

  has_one :session, ->{ where(installation_id: i.installation_id) }, scope_only: true
end

See Also:

Constant Summary

Constants included from Properties

Properties::BASE, Properties::BASE_FIELD_MAP, Properties::BASE_KEYS, Properties::CORE_FIELDS, Properties::DELETE_OP, Properties::TYPES

Constants inherited from Pointer

Pointer::ATTRIBUTES

Constants inherited from Model

Model::CLASS_INSTALLATION, Model::CLASS_PRODUCT, Model::CLASS_ROLE, Model::CLASS_SESSION, Model::CLASS_USER, Model::ID, Model::KEY_CLASS_NAME, Model::KEY_CREATED_AT, Model::KEY_OBJECT_ID, Model::KEY_UPDATED_AT, Model::OBJECT_ID, Model::TYPE_ACL, Model::TYPE_BYTES, Model::TYPE_DATE, Model::TYPE_FIELD, Model::TYPE_FILE, Model::TYPE_GEOPOINT, Model::TYPE_NUMBER, Model::TYPE_OBJECT, Model::TYPE_POINTER, Model::TYPE_RELATION

Instance Attribute Summary collapse

Attributes inherited from Object

#acl, #created_at, #id, #updated_at

Attributes inherited from Pointer

#id, #parse_class

Method Summary

Methods inherited from Object

#[], #[]=, #__type, #after_create, #after_destroy, #after_save, #apply_defaults!, #as_json, #before_create, #before_destroy, #before_save, build, #clear_attribute_change!, #clear_changes!, #existed?, #initialize, #new?, #parse_class, #persisted?, pointer, #pretty, #reload!, #rollback!, #schema, set_default_acl, #twin, #updates, #validate!, webhook, webhook_function

Methods included from Core::Schema

#auto_upgrade!, #create_schema, #fetch_schema, #schema, #update_schema

Methods included from Core::Querying

#all, #count, #each, #find, #first, #literal_where, #newest, #oldest, #query, #scope

Methods included from Core::Actions

#change_requests, #changes_applied!, #changes_payload, #create, #destroy, #destroy_request, #op_add!, #op_add_relation!, #op_add_unique!, #op_destroy!, #op_increment!, #op_remove!, #op_remove_relation!, #operate_field!, #prepare_save!, #relation_change_operations, #save, #save!, #set_attributes!, #update, #update!, #update_relations, #uri_path

Methods included from Core::Fetching

#autofetch!, #fetch, #fetch!

Methods included from Associations::HasMany

has_many, #relation_changes?, #relation_updates, #relations

Methods included from Associations::BelongsTo

belongs_to, #key?

Methods included from Associations::HasOne

has_one

Methods included from Properties

#apply_attributes!, #attribute_changes?, #attribute_updates, #attributes, #attributes=, #field_map, #fields, #format_operation, #format_value

Methods inherited from Pointer

#==, #[], #[]=, #__type, #attributes, #className, #fetch, #fetched?, #hash, #initialize, #json_hash, #pointer, #pointer?, #present?, #sig

Methods inherited from Model

find_class

Methods included from Client::Connectable

#client

Constructor Details

This class inherits a constructor from Parse::Object

Instance Attribute Details

#app_identifierString

A unique identifier for this installation’s client application. In iOS, this is the Bundle Identifier.

Returns:


54
# File 'lib/parse/model/classes/installation.rb', line 54

property :app_identifier

#app_nameString

The display name of the client application to which this installation belongs.

Returns:


59
# File 'lib/parse/model/classes/installation.rb', line 59

property :app_name

#app_versionString

The version string of the client application to which this installation belongs.

Returns:


64
# File 'lib/parse/model/classes/installation.rb', line 64

property :app_version

#badgeInteger

A number field representing the last known application badge for iOS installations.

Returns:

  • (Integer)

69
# File 'lib/parse/model/classes/installation.rb', line 69

property :badge, :integer

#channelsArray

An array of the channels to which a device is currently subscribed. Note that *channelUris* (the Microsoft-generated push URIs for Windows devices) is not supported at this time.

Returns:


76
# File 'lib/parse/model/classes/installation.rb', line 76

property :channels, :array

#device_tokenString

The Apple or Google generated token used to deliver messages to the APNs or GCM push networks respectively.

Returns:


82
# File 'lib/parse/model/classes/installation.rb', line 82

property :device_token

#device_token_last_modifiedInteger

Returns number of seconds since token modified

Returns:

  • (Integer)

    number of seconds since token modified


86
# File 'lib/parse/model/classes/installation.rb', line 86

property :device_token_last_modified, :integer

#device_typeString

The type of device, “ios”, “android”, “winrt”, “winphone”, or “dotnet” (readonly). This property is implemented as a Parse::Stack enumeration.

Returns:


92
# File 'lib/parse/model/classes/installation.rb', line 92

property :device_type, enum: [:ios, :android, :winrt, :winphone, :dotnet]

#gcm_sender_idString

This field only has meaning for Android installations that use the GCM push type. It is reserved for directing Parse to send pushes to this installation with an alternate GCM sender ID. This field should generally not be set unless you are uploading installation data from another push provider. If you set this field, then you must set the GCM API key corresponding to this GCM sender ID in your Parse application’s push settings.

Returns:


49
# File 'lib/parse/model/classes/installation.rb', line 49

property :gcm_sender_id, field: :GCMSenderId

#installation_idString

Universally Unique Identifier (UUID) for the device used by Parse. It must be unique across all of an app’s installations. (readonly).

Returns:


98
# File 'lib/parse/model/classes/installation.rb', line 98

property :installation_id

#locale_identifierString

The locale for this device.

Returns:


103
# File 'lib/parse/model/classes/installation.rb', line 103

property :locale_identifier

#parse_versionString

The version of the Parse SDK which this installation uses.

Returns:


108
# File 'lib/parse/model/classes/installation.rb', line 108

property :parse_version

#push_typeString

This field is reserved for directing Parse to the push delivery network to be used. If the device is registered to receive pushes via GCM, this field will be marked “gcm”. If this device is not using GCM, and is using Parse’s push notification service, it will be blank (readonly).

Returns:


116
# File 'lib/parse/model/classes/installation.rb', line 116

property :push_type

#sessionParse::Session

Returns the corresponding Session associated with this installation, if any exists. This is implemented as a has_one association to the Session class using the #installation_id.

Returns:

Version:

  • 1.7.1


129
# File 'lib/parse/model/classes/installation.rb', line 129

has_one :session, ->{ where(installation_id: i.installation_id) }, scope_only: true

#time_zoneParse::TimeZone

The current time zone where the target device is located. This should be an IANA time zone identifier or a TimeZone instance.

Returns:


122
# File 'lib/parse/model/classes/installation.rb', line 122

property :time_zone, :timezone