小编Dan*_*ath的帖子

GAE交易:传递实体或密钥?

与GAE进行交易时,可以传递实体,或者如果传递总是将密钥传递给实体.例如,假设我将资金从一个实体转移到另一个实体.我应该这样做:

@ndb.transactional(xg=True)
def transfer_money(key1, key2, amount):
    entity1 = key1.get()
    entity2 = key2.get()
    entity1.money -= amount
    entity2.money += amount
    ndb.put_multi([entity1, entity2])
Run Code Online (Sandbox Code Playgroud)

或者这样可以:

@ndb.transactional(xg=True)
def transfer_money(entity1, entity2, amount):
    entity1.money -= amount
    entity2.money += amount
    ndb.put_multi([entity1, entity2])
Run Code Online (Sandbox Code Playgroud)

还是取决于其他因素?

python google-app-engine transactions app-engine-ndb google-cloud-datastore

2
推荐指数
1
解决办法
114
查看次数

Python,gae,ndb - 获取所有密钥

我知道如何使用一键搞定所有实体Book.get_by_id(key) ,其中Book是一个ndb.Model.

如何获得同类中的所有密钥?它是否正在使用fetch()(https://cloud.google.com/appengine/docs/python/ndb/queryclass#Query_fetch)?

  • 我不想从给定实体或某个值获取密钥/ ID.只需检索所有可用的密钥,这样我就可以检索他们尊重的实体并将其全部显示给用户

python google-app-engine app-engine-ndb google-cloud-datastore

2
推荐指数
2
解决办法
2465
查看次数

DatastoreNeedIndexException:找不到匹配的索引.使用Objectify

在将我的代码部署到云后使用google appengine时出现此错误,我使用objectify索引进行过滤.

这是我的包含索引的java类(Entity)文件

@Entity
public class Session{
   @Index private Integer year;
   @Index private Key<Institute> institute;
  //some other manipulation goes below
   }
Run Code Online (Sandbox Code Playgroud)

当我尝试使用objectify从数据存储区调用实体列表时

ofy().load().type(Session.class).filter("institute",t).order("year").list();//order by year
Run Code Online (Sandbox Code Playgroud)

它在我的控制台上抛出以下错误,下面的图像显示它,抱歉不太清楚

在此输入图像描述

java google-app-engine objectify google-cloud-datastore

2
推荐指数
1
解决办法
705
查看次数

从Datastore获取大型JSON

我在Google Cloud Endpoints上创建了一个API,可以从Datastore中的单个实体获取所有数据.使用Objectify执行NoSQL请求(非常简单的一个:从实体中选择*).

此数据存储区实体填充了200行(实体),每行(实体)具有相同类型的子实体列表:

  • 膳食:
    • 字符串标题
    • int preparationTime
    • 列表<成分> listOfIngredients(子实体......)
    • ...

因此,当我获取API时,会返回一个JSON.它的大小约为641Ko,有17K线.

当我查看API资源管理器时,它告诉我请求需要4秒才能执行: 在此输入图像描述

我想减少那段时间,因为它真的很高......我已经:

  • 将GAE实例增加到F2
  • 启用Memcache

它有点帮助,但我不认为这是最有效的方式......

我应该使用Big Query更快地生成JSON文件吗?或者也许有另一种解决方案?

google-app-engine google-cloud-endpoints google-cloud-datastore

2
推荐指数
1
解决办法
238
查看次数

是否可以重命名列?

是否可以发出类似的东西

RENAME COLUMN col1 col2
Run Code Online (Sandbox Code Playgroud)

在 Google Cloud Spanner 中?从 DDL 来看这是不可能的;如果不是,这是 Beta 版的设计选择还是限制?

database database-schema google-cloud-platform google-cloud-spanner

2
推荐指数
1
解决办法
3336
查看次数

Spanner 的 DatabaseClient 线程安全吗?

我们目前正在为 Spanner 检索 DatabaseClient,如下所示:

DatabaseClient dbClient = spanner.getDatabaseClient(...)
Run Code Online (Sandbox Code Playgroud)

跨多个线程使用这个 DatabaseClient 对象是否安全?具体来说,我们想要依赖注入 DatabaseClient 的一个实例,并想了解它是否是线程安全的并且可以重用,或者每个线程是否应该调用 spanner?

这是在 Web API 服务中使用的,因此对 URL 的大量传入请求,每个传入请求都需要一个扳手连接。什么是最好的分享对象?例如,我们不希望每个会话都必须加载 Google JSON 凭据(我们假设发生在 SpannerOptions Builder 中)。

java thread-safety google-cloud-platform google-cloud-spanner

2
推荐指数
1
解决办法
467
查看次数

如何在Google扳手中使用空间查询

我们可以在Google Spaner DB中使用地理空间查询吗?如果不是,是否还有其他方法可以通过在应用程序服务器中移动空间计算来在SQL中使用空间查询?

sql geospatial google-cloud-platform google-cloud-spanner

2
推荐指数
1
解决办法
838
查看次数

从Firestore Swift 4 iOS中检索上一个文档ID

嗨,大家好只是一个简单的问题与新的Firestore ...

如何从Firestore数据库中检索上次自动生成的文档ID.

ID示例在这里

xcode ios swift google-cloud-firestore

2
推荐指数
1
解决办法
1015
查看次数

使用 ngrx 找出 firestore

我似乎陷入了困境,因为没有太多关于如何将 firestore 与 ngrx 一起使用的指南或教程。

假设我们有组织列表,所有这些都将在 2 个组件中使用,即组件 A 和组件 B。

  1. 我可以制作一个效果,它采用 LOAD_ACTION 来合并可观察到的集合 valuechanges,并将其映射到每个组件的 LOAD_ACTION_SUCCESS。

现在,每次发生更改时,都会调用 LOAD_ACTION_SUCCESS,将我们的数据保存到每个存储状态。

但这需要组件首先调度 LOAD_ACTION,这对于 REAL_TIME_DATA 来说可能有点错误,因为之后它将继续更新。即使不使用时。

  1. 我可以在组件本身中连接可观察值更改的服务(与 LOAD_ACTION 相同)。它不会保存状态,但 Firebase observable 有点像 Store(只要它没有保存在客户端上),所以如果它已经获取了数据,那么它就已经在那里了。

不再使用 2 个数据副本作为状态。

这让我想到:

  1. 它是否应该有一个用于存储来自服务的“集合”的存储,两个组件都从中获取数据,例如在使用该状态的每个地方都没有该状态的多个副本。

任何帮助我进一步发展的信息或指导都是值得赞赏的,我似乎陷入了这样一个微不足道的问题,显然我可以继续编码,但更希望它是正确的。

当谈到 ngrx 时,处理实时数据似乎让我感到困惑。

示例也将受到赞赏。

firebase ngrx ngrx-effects ngrx-store google-cloud-firestore

2
推荐指数
1
解决办法
812
查看次数

Firebase的喜欢/喜欢功能

该系统本身很容易理解,但难以实现。而且,出于安全原因,我开始思考如何做到这一点。

我当时想让该功能在前端Firebase脚本中工作,只是在那里做所有事情,例如检查该用户是否已经发布了喜欢/不喜欢,如果用户单击则删除/添加/切换。问题在于此方法的安全性:用户无法创建一个新功能,该功能将不会检查类似消息是否已发布吗?

如果可能的话,该系统应如何工作?现在我的逻辑是:

Clicked like:
    locally activate/deactivate like button and remove dislike active class if on
    check docs for this user/doc like
        `1`? -> remove this doc from collection
        `0`? -> switch to `1`, because `0` is dislike
        `undefined`? -> create doc with `vote: 1`
            change (+1/-1 or +2/-2) the value of post votes fields
Run Code Online (Sandbox Code Playgroud)

一样不喜欢。但是对于这么小的功能,听起来确实很复杂。也许可以在不失去安全级别的情况下,通过用户/投票来进行额外的收集?还是使用http-triggers可以在某种程度上帮助您?在某些类似PHP的语言上,此功能会容易得多,所以我现在很害怕。

database data-modeling firebase google-cloud-platform google-cloud-firestore

2
推荐指数
1
解决办法
1208
查看次数