Update the api to include onComplete callbacks for set(), remove(), and update()