【问题标题】:Infuriating user queries on Google's App Engine在 Google 的 App Engine 上激怒用户查询
【发布时间】:2012-02-24 15:07:27
【问题描述】:

我在 Google 的 App Engine 上有一个网络服务,它使用 Google 的用户 API 来验证用户、管理帐户(包括高级服务订阅)和管理数据所有权。对于几乎所有东西,它都非常有效。

但是,我经常需要使用数据存储查看器来检查用户的条目以响应支持请求,并且需要输入 GQL 来查找某人的帐户信息。查询通常如下所示:

SELECT * FROM UserAttr WHERE user = USER('blah@fish.com')

这应该可以正常工作,但无论出于何种原因,上面的 USER 构造函数 (?) 区分大小写,此外,如果用户拥有一个带有 @987654322 的 Google 帐户,有时会出现奇怪的行为@ 地址。如果是gmail.com 地址,有时 USER('whoever@gmail.com') 有效,但有时 USER('whoever') 有效。令人抓狂的是,我不得不在 GQL 控制台中尝试各种不同的排列来尝试查找内容,如果明显的大小写差异不起作用,我通常会放弃。

我在这里做错了什么,还是这个行为真的这么糟糕?知道这种事情在 Python API 中是否能更好地工作(也就是说,如果我通过 Python 发出类似的请求,它还会表现出这种愚蠢的行为吗?)。如果我可以让 Google 的仪表板为我工作,我想避免为此应用编写自己的管理页面。

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    我遇到了同样的问题,我发现谷歌根本不建议将用户存储在数据存储中,因为电子邮件地址可能会改变:

    来自here

    db 和 NDB 库都具有 UserProperty 属性类型,因此 应用程序可以存储用户值。然而,由于这些值成为 用户更改电子邮件地址时无效,大多数应用程序没有 很好地利用了这个功能。

    它们也可能意味着当用户表示在内部发生变化时。

    如果我找到任何可以解决此问题的方法,我会告诉你

    ---- 编辑----

    here 他们建议存储用户 ID 以便查询和比较。有道理……

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2011-01-15
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多