私には、それぞれID117138609372751079516と144229817858159123282の2人の模擬ユーザーJoとSamがいます。
アプリには次のエンティティがあります。
class MockEntity(ndb.Model):
ownerId = ndb.StringProperty(default=users.get_current_user().user_id())
両方が同時にログインし、どちらかのユーザーがエンティティを初めて保存/配置すると、プロパティ'ownerId'にユーザーのIDのいずれかがランダムに入力されます:117138609372751079516または144229817858159123282
pre_put_hookを使用すると、問題が解決するようです。
def _pre_put_hook(self):
if not self.ownerId:
self.ownerId = users.get_current_user().user_id()
私は当面の問題を解決しましたが、そもそもなぜこれが起こっているのですか?これは、約50人のテスターのグループで開発および本番環境でテストされています。それらの約40%は、自分のものではないエンティティを見ることができました。