code: public TableRef once(StorageEvent eventType, final OnItemSnapshot onItemSnapshot, final OnError onError) {
  		if(eventType == StorageEvent.PUT) {
  			getItems(onItemSnapshot, onError);
  		}
  		Event ev = new Event(eventType, this.name, null, null, true, true, pushNotificationsEnabled, onItemSnapshot);
  		context.addEvent(ev);
  		return this;
  	}
docs: Attach a listener to run only once the event type occurs.
  
  <pre>
  StorageRef storage = new StorageRef("your_app_key", "your_token");
  
  TableRef tableRef = storage.table("your_table");
  
  // Add an update listener. Only one notification is received once the item is updated after the listener is set
  tableRef.once(StorageRef.StorageEvent.UPDATE,new OnItemSnapshot() {
  &#064;Override
  public void run(ItemSnapshot itemSnapshot) {
  if (itemSnapshot != null) {
  Log.d("TableRef", "Item updated: " + itemSnapshot.val());
  }
  }
  }, new OnError() {
  &#064;Override
  public void run(Integer integer, String errorMessage) {
  Log.e("TableRef", "Error adding an update event listener: " + errorMessage);
  }
  });
  </pre>
  
  @param eventType
  The type of the event to listen. Possible values: put, update, delete
  @param onItemSnapshot
  The function to run when the event occurs. The function is called with the snapshot of affected item as argument.
  @param onError
  Response if client side validation failed or if an error was returned from the server.
  @return Current table reference