模型Firestore数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型Firestore数据相关的知识,希望对你有一定的参考价值。

我正在使用Firestore创建一个新数据库。我是NoSQL的新手,并试图确定建模数据的最佳实践。我知道Firestore数据默认是浅层的(与实时数据库相对),因此嵌套不是问题。那就是说,建立一个或多或少的标准用户对象的最佳方法是什么?

选项1 - 仅限父级:

users {
    uid {
        name: 'Bob',
        officeNumber: 1234567890,
        faxNumber: 0987654321,
        email: 'test@test.com',
        domain: '@test.com',
        facebook: 'bobdylan97',
        twitter: 'bobbystwitter',
        instagram: 'bobinsta',
        street: '111 N Elm St',
        city: 'Brooklyn',
        state: 'NY',
        zip: 12345,
        height: 72,
        weight: 200,
        hairColor: 'brown',
        eyeColor: 'blue'
    }
}

选项2 - 嵌套多个级别:

users {
    uid {
        personal {
            name {
                first: 'Bob',
                last: 'Dylan'
            },
            attributes {
                height: 72,
                weight: 200,
                hairColor: 'brown',
                eyeColor: 'blue'
            }
        },
        contact {
            phone {
                office: 1234567890,
                fax: 0987654321
            },
            email: 'test@test.com',
            domain: '@test.com',
            social {
                facebook: 'bobdylan97',
                twitter: 'bobbystwitter',
                instagram: 'bobinsta'
            }
        },
        address {
            street: '111 N Elm St',
            city: 'Brooklyn',
            state: 'NY',
            zip: 12345
        }
    }
}

我正在建设的公司正在增长,并且可能会在不同的点添加额外的数据,因此扩展是一个潜在的问题。对选项2中的数据进行分组是否存在任何问题或疑虑?像这样建模数据的最佳实践是什么?优化模型以进行查询或组织是最佳做法吗?

答案

我建议你观看:qazxsw poi

它完美地解释了Firestore的基本概念。

另一答案

如果您将用户存储在What is a NoSQL Database? - Get to Know Cloud Firestore Ep.1集合中并且users是文档ID,则选项2应该可以正常工作。

您只存储有关文档中每个用户的相当少量的数据,因此您不应达到1Mb限制。你也可以在这里挤压base64编码的个人资料图片,没有问题。

以上是关于模型Firestore数据的主要内容,如果未能解决你的问题,请参考以下文章

视图模型中的 Firestore 方法未在 SwiftUI onAppear 方法中调用

Firestore 从集合中获取数组

匹配用户 Firestore 数据库模型

在android studio中引用Firestore

有没有办法在 Flutter 上为 firestore 数据库生成模型类?

如何为使用 Firestore 文档快照的模型编写测试