여기에서 전자 메일 속성을 사용하여 엔터티를 삽입하려고합니다. 브라우저 U에서 db_success가 수신되었음을 알 수 있습니다. 데이터 저장소 뷰어에서 엔티티가 의심스러운 낮은 2 개의 쓰기 방식으로 삽입되었음을 알 수 있으며 엔티티 종류, 엔티티 키 및 ID를 볼 수 있지만 그 밖의 것은 볼 수 없습니다.엔티티를 데이터 저장소에 넣으려고하면 키만 입력하고 연결된 속성은 표시되지 않습니다.
다른 코드는 전자 메일을 기반으로 사용자 액세스를 제한하려는 위치입니다. 나는 이전에 삽입 된 개체의 전자 메일 속성에 데이터 저장소 쿼리를하고 다시 응용 프로그램 항목의 URL로 구성 페이지에 인증 된 계정 및 권한이없는 계정을 재 시도 :
c := appengine.NewContext(r)
u := user.Current(c)
if u == nil {
http.Redirect(w, r, "/", http.StatusSeeOther)
} else if user.IsAdmin(c) {
io.WriteString(w, admins_choice_html)
} else {
var emails []uemail_struct
q := datastore.NewQuery("users").Filter("user_email =", u.Email)
_,err := q.GetAll(c,&emails)
if err != nil {
http.Redirect(w, r, "/", http.StatusSeeOther)
}
if len(emails) == 0 {
url, err := user.LogoutURL(c, "/")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Location", url)
w.WriteHeader(http.StatusFound)
} else {
http.Redirect(w, r, "/dist/index.html", http.StatusSeeOther)
}
}
나는 확신이 내 테스트 데이터 사용자 이메일 추가 기능은 괜찮았다. 데이터 [email protected] 이메일 주소에 대한 첫 번째 코드를 실행하고 동일한 [email protected] 이메일 주소에 대해 두 번째 코드를 실행했음을 의미합니다. 필자가 생각할 수있는 유일한 결론은 첫 번째 코드 부분에있는 데이터 저장소가 데이터 저장소에 값 [email protected]을 가진 필수 속성 user_email을 삽입하지 않았다는 것입니다.