小编Dan*_*ath的帖子

Google云数据存储区仅存储唯一实体

我正在尝试通过Google数据存储学习NoSQL,但是我遇到了唯一性问题。

考虑一个电子商务商店,它具有类别和产品。

您不希望数据库中具有相同SKU的两个产品。

所以我用JSON插入了一个实体:

{"sku": 1234, "product_name": "Test product"}
Run Code Online (Sandbox Code Playgroud)

它显示了两个字段。但是之后我可以再次这样做,并且我有两个或更多相同的产品。

您如何避免这种情况?可以使sku字段唯一吗?

插入之前是否需要查询?

类别也会出现相同的问题。我是否应该对所有类别都使用一个实体,然后在JSON中进行结构化?

这是什么好习惯?

database google-app-engine transactions google-cloud-datastore google-cloud-platform

3
推荐指数
1
解决办法
928
查看次数

如何在谷歌云数据存储中创建新模型(种类)

我正在为我的项目使用 Google Cloud Datastore(而不是 NDB)。

python2.7 和 Django。

我想创建一个新模型,比如说标签模型。

class Tag(db.Model):
    name = ndb.StringProperty()
    feature = ndb.StringProperty(default='')
Run Code Online (Sandbox Code Playgroud)

我已经多次向模型添加属性,但尚未创建新模型。

我的问题是,当我使用 mySQL 为我的另一个项目更改 Django 中的模型架构时,我总是执行 manage.py migrate。

我是否还必须为 Datastore 执行迁移命令?

或者我只需要定义模型就可以了?

提前致谢!

django google-app-engine python-2.7 google-cloud-datastore google-cloud-platform

3
推荐指数
1
解决办法
1031
查看次数

Cloud Firestore是否支持React Native

我目前使用Firebase实时数据库为我的本机反应移动应用程序,我一直在寻找一些提供更好的查询功能的替代方案.Firestore的一个优点是它的查询功能.我想检查Firestore是否支持React Native.

database firebase react-native google-cloud-firestore

3
推荐指数
1
解决办法
3030
查看次数

Cloud Firestore相当于AppEngine/Datastore Memcache和Keys-only查询?

在数据存储区上使用仅密钥查询,然后从memcache中获取实体是一种便宜的机制,可以同时读取大量实体.例如,可以对1000个密钥进行仅密钥查询,这可以用于从memcahce获取实体,而不必执行许多(如果有的话)数据存储区读取.

云端Firestore是否会提供此类内容?

database firebase google-cloud-datastore google-cloud-platform google-cloud-firestore

3
推荐指数
1
解决办法
460
查看次数

查询会根据结果集的大小进行缩放,而不是数据集的大小

这是关于最新的Firebase Cloud Firestore的问题.在这个文档中,它是这样说的:

它还允许表达性查询.查询按结果集的大小进行缩放,而不是数据集的大小,因此您将获得相同的性能,从100或100,000,000的集合中获取1个结果.

这个陈述对我来说并不清楚.你能解释一下这个用例吗?

firebase ionic3 angular google-cloud-firestore

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

firebase/firestore docs查询不工作 - javascript

由于firestore是新的,我在使用它时遇到了问题.

我必须得到所有用户的集合并遍历它.但它没有用.

db.collection("users").get().then(function(querySnapshot){
      console.log(querySnapshot.data());
});
Run Code Online (Sandbox Code Playgroud)

它说:

querySnapshot.data不是一个函数

以下代码:

callFireBase(mobileToCheck){
        db.collection("users").where("mobile_no", '==', mobileToCheck).get().then(function(querySnapshot){
            if (querySnapshot.exists) {
                var userData = querySnapshot.data();
                var userId = querySnapshot.id;
                console.log(mobileToCheck + "Exist In DB");
            }else{
                console.log(mobileToCheck + "Do Not Exist In DB");
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

总是打印

923052273575在DB中不存在

即使存在,请参阅以下图像以供参考.在文档中,他们告诉我(我已经使用过)这种方式.

在此输入图像描述

javascript firebase google-cloud-firestore

3
推荐指数
1
解决办法
1450
查看次数

angularfire2:未启用Cloud Firestore API

我正在学习在我的项目中实现angularfire2.不幸的是我现在卡住了.我设置了像这里描述的Angular-Project

https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md

我还在firebase中使用规则集设置了一个数据库

{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在浏览器中的控制台中运行应用程序时,会出现以下错误

错误错误:未为项目启用Cloud Firestore API

现在我找到了一种在这里启用API的方法

https://console.cloud.google.com/apis/library/firestore.googleapis.com/?project=projectname

现在离开我的错误

错误错误:权限丢失或不足

我现在的问题是我可以设置API密钥(但也从我的firebase控制台获得了不同的API密钥?)和OAuths,但我不知道如何实现这些是我的代码.只是简单地生成一个API密钥并在environment.firebase配置中使用该密钥不起作用.如果有人知道任何事情会很棒.我会继续尝试,让你知道我是否也能让它运作起来.

node.js angularjs firebase angularfire2 google-cloud-firestore

3
推荐指数
1
解决办法
3801
查看次数

Flutter Firestore - 查找`Document Snapshot` id

我有简单的应用程序与产品列表.产品存储在Firebase Firestore中.我想下载产品列表,并为用户提供更新某些数据的可能性.

所以我准备了产品清单:

Widget _buildProductsList() {
  return new StreamBuilder(
    stream: Firestore.instance
        .collection('products')
        .snapshots,
    builder: (context, snapshot) {
      if (!snapshot.hasData) return new Text("Loading...");

      return new ListView(
        children: snapshot.data.documents.map((document) {
          Product product = new Product(document.data);
          _ProductCell cell = new _ProductCell();
          cell.product = product;
          return cell;
        }).toList(),
      );
    },
  );
}
Run Code Online (Sandbox Code Playgroud)

我将文档快照序列化为我的Product对象:

class Product {

    static const NAME_KEY = 'name';
    static const DESC_KEY = 'desc';
    static const PHOTO_URL_KEY = 'photoUrl';
    static const AUTHOR_ID_KEY = 'authorId';
    static const CREATED_AT_KEY = 'createdAt';

    String name;
    String …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter google-cloud-firestore

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

AngularFire2 firestore在doc valueChanges上取(1)

使用AngularFire2我尝试从单个Firestore文档中获取数据.有效的是:

this.addressRef = afs.doc<Address>('addresses/key')
this.addressRef.valueChanges().subscribe(val => {......}
Run Code Online (Sandbox Code Playgroud)

我想只运行一次订阅代码.通常我使用take(1)来实现这一点(与Firebase DB一起使用).但是这段代码:

this.addressRef.valueChanges().take(1).subscribe(val => {......}
Run Code Online (Sandbox Code Playgroud)

给出错误:TypeError:this.addressRef.valueChanges(...).take不是函数.

VS Code列出了采取行动.这是AngularFire2中的一个错误,我做错了还是有其他(更好的)方法在获取数据后停止订阅?我也尝试过topromise,但这也失败了.

firebase angularfire angular google-cloud-firestore

3
推荐指数
1
解决办法
5610
查看次数

FIRESTORE - 如何在文档中获取集合的值?

在我的Firestore数据库中,我有一个收集APP.

它有一个文档doc1.

doc1还有一个子集合coll1.

请考虑以下示例.

let db = firebaseApp.firestore();

db.collection('APP').doc('doc1').get()
  .then(doc => {
    let doc1Data = doc.data();
  });
Run Code Online (Sandbox Code Playgroud)

我怎样才能在响应中检查集合.或者当我已经知道有一个子集合coll1时,我该如何遍历其文档.

database node.js firebase google-cloud-firestore

3
推荐指数
1
解决办法
4159
查看次数