func (u *User) UpdateEmail(w http.ResponseWriter, r *http.Request, uid int64, newEmail string) error { //get context c := appengine.NewContext(r) //set key k := datastore.NewKey(c, "User", "", uid, nil) //start query q := datastore.NewQuery("User").Filter("__key__ =", k) //populate user slices var users []User key, err := q.GetAll(c, &users) if err != nil { //handle error return err } for i, r := range users { r.Email = newEmail //write to db _, err := datastore.Put(c, key[i], &r) if err != nil { //handle error return err } } return nil }