gpt4 book ai didi

python - Google App Engine : using users. get_current_user().user_id() 作为 NDB 实体的 id

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:40 25 4
gpt4 key购买 nike

我正在开发一个基于 Google App Engine(Webapp2/Python 和 ndb)的网络应用程序。我正在使用 Google OAuth2 身份验证,并将通过 users.get_current_user().user_id() 获得的 googleId 存储在我的 ndb 的自定义用户实体中。因此,这个实体既有一个 id(由 ndb 自动提供),也有一个由我设置的名为 googleId 的属性。我使用这个用户对象作为我存储在 ndb 中的其他使用数据的共同祖先。

这种方法非常烦人,因为为了避免多个 ndb 查询(每个请求一个),我必须在 session 中存储当前登录用户的 id、其 googled id 并验证它是否与当前登录用户不同。

因此,我考虑使用 googleId 作为 ndb 实体的 KEY 并在祖先查询中使用它。喜欢

 mu = MyUser(id = users.get_current_user().user_id())
mu.put()

它工作得很好,但我想知道是否有任何正当理由不这样做(即 googleId 可能比 ndb id 属性的最大大小长,等等)

最佳答案

我需要查看您的 MyUser 模型(也许还有其他一些代码)才能更有信心,但是,假设这一切都处于非常正常的安排中,我认为您不会遇到任何麻烦。

数据存储 ID 可以很长,而 user_id 反过来也不应该太大(不幸的是,这两个限制都没有严格记录,但我个人不会过分担心任一)。

关于python - Google App Engine : using users. get_current_user().user_id() 作为 NDB 实体的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28260909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com