にネストされた構造体を入れていませんaccount Account
の内容をデータストアに保存する直前に(Put(ctx, key, &account
)、印刷するとAppUser
の情報がすべて表示されますが、後でGet
と入力すると、AppUser
の情報は存在しません(ちょうど{[]}
と表示されます) 。データストアは、構造体は次のようになりゴー
私は前に何の問題もなく、データストアにネストされた構造体のスライスを格納しているかなり確信しているので、私は...それを引き起こしている可能性がありますどのようになど、かなり混乱している
プットFUNC:
func PutAccount(ctx context.Context, acc Account) (*datastore.Key, error) {
if isValidUsername(acc.Username) != true {
return nil, errors.New("Invalid username.")
}
var hashedPassword []byte
if acc.RegistrationTime.IsZero() {
var err error
hashedPassword, err = bcrypt.GenerateFromPassword(acc.Password, 12)
if err != nil {
return nil, err
}
} else {
hashedPassword = acc.Password
}
account := Account{
Username: strings.ToLower(acc.Username),
Password: hashedPassword,
RegistrationTime: time.Now(),
AppUser: acc.AppUser}
fmt.Println("PutAccount, account:", account) // before saving it prints the AppUser without problems
key := datastore.NameKey("Account", account.Username, nil)
return database.DatastoreClient().Put(ctx, key, &account)
}
ゲットFUNC:
func GetAccount(ctx context.Context, key *datastore.Key) (Account, error) {
var account Account
err := database.DatastoreClient().Get(ctx, key, &account)
if err != nil {
return account, err
}
return account, nil
}
データを取得して配置するコードを示してください。 'Get'のフラットな構造体を試してみることもできます。 – Marc
また、https://stackoverflow.com/questions/14308530/nested-structs-on-gae-datastore-using-go?rq=1 – Marc
@Marcをご覧ください。編集を参照してください。私はその答えに気づいたが、私はドキュメントがかなり複雑で複雑であることを発見した – fisker