code: public TableRef on(StorageEvent eventType, final ItemAttribute primary, final OnItemSnapshot onItemSnapshot) {
  		return on(eventType, primary, onItemSnapshot, null);
  	}
docs: Attach a listener to run every time the eventType occurs for specific primary key.
  
  <pre>
  StorageRef storage = new StorageRef("your_app_key", "your_token");
  
  TableRef tableRef = storage.table("your_table");
  
  // Add an update listener
  tableRef.on(StorageRef.StorageEvent.UPDATE, new ItemAttribute("your_primary_key_value"),new OnItemSnapshot() {
  &#064;Override
  public void run(ItemSnapshot itemSnapshot) {
  if (itemSnapshot != null) {
  Log.d("TableRef", "Item updated: " + itemSnapshot.val());
  }
  }
  });
  
  </pre>
  
  @param eventType
  The type of the event to listen. Possible values: put, update, delete
  @param primary
  The primary key of the items to listen. The callback will run every time an item with the primary key is affected.
  @param onItemSnapshot
  The function to run whenever the event occurs. The function is called with the snapshot of affected item as argument.  If the event type is "put", it will immediately trigger a "getItems" to get the initial data and run the callback with each item snapshot as argument. Note: If you are using GCM the value of received ItemSnapshot can be null.
  @return Current table reference