相关疑难解决方法(0)

通过使用查询而不是反复观察单个事件,加快为我的社交网络应用程序提取帖子

我有一系列的键导致我的社交网络的帖子对象像/ posts/id /(发布信息)

当我加载帖子时,我使用observeSingleEventOfType(.Value)方法加载/发布/ 0然后/ posts/1等.

我使用lazyTableView一次加载30并且速度很慢.有没有什么方法可以使用其中一种查询方法或其他方法使其更快,即使我必须重构我的JSON树中的数据.

我来自Parse重新实现我的应用程序,到目前为止,经验非常好.只有这一点我有点坚持.在此先感谢您的帮助!

编辑:

func loadNext(i: Int) { 

    // check if exhists
    let ideaPostsRef = Firebase(url: "https://APPURL")

    ideaPostsRef.childByAppendingPath(i.description).observeSingleEventOfType(.Value, withBlock: {
        (snapshot) in

        if i % 29 == 0 && i != 0 && !self.hitNull { return }
            // false if nil
            // true if not nil
        if !(snapshot.value is NSNull) {
            let postJSON  = snapshot.value as! [String: AnyObject]
            print("GOT VALID \(postJSON)")
            let post = IdeaPost(message: postJSON["message"] as! String, byUser: postJSON["user"] as! String, withId: i.description)
            post.upvotes …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift

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

Firebase查询双嵌套

鉴于firebase中的数据结构,我想运行一个查询来检索博客'efg'.我此时不知道用户ID.

{Users :
     "1234567": {
          name: 'Bob',
          blogs: {
               'abc':{..},
               'zyx':{..}
          }
     },
     "7654321": {
          name: 'Frank',
          blogs: {
               'efg':{..},
               'hij':{..}
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

firebase firebase-realtime-database

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

实时通讯移动应用程序的 Firebase 安全规则

我正在使用 Ionic/Angular 和 Firebase 构建实时消息传递工具。我使用 Firebase 身份验证来验证我的用户身份,并使用 Firebase DB 来存储消息和消息线程。

我的问题是,我应该使用什么安全规则才能使消息线程私有且可行,并且仅对参与给定消息线程的 2 个人来说是可写的。

我的数据库结构现在看起来像这样:

-chats
  --Message_thread_ID
    ---Unique_ID_generated_message by Firebase
       ----Message
       ----Sender ID
       ----Receiver ID
    ---Unique_ID_generated_message by Firebase
       ----Message
       ----Sender ID
       ----Receiver ID
  --Message_thread_ID
    ---Unique_ID_generated_message by Firebase
       ----Message
       ----Sender ID
       ----Receiver ID
Run Code Online (Sandbox Code Playgroud)

我当前的 firebase 安全规则是:

{
  "rules": {
    ".read": "auth != null",
    ".write": false,
    "$messageThreadID": {
        ".write": "auth != null && !data.exists()",
        ".read": "auth != null"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但这样任何经过身份验证的用户都将能够读取任何用户之间的所有消息。这不是我想要的。我想让消息线程仅对任何给定线程中的两个用户保持私有。

我应该如何重组我的数据库以获得最佳解决方案?

PS:我有办法使用后端来做到这一点,或者为各自线程的两个用户中的每一个制作两个副本,但这些解决方案看起来确实很次等。

firebase firebase-security firebase-authentication firebase-realtime-database

6
推荐指数
1
解决办法
2684
查看次数

当我们有多对多关系时,如何在 firebase 中获取数据

我阅读了 Firebase 中的多对多关系问题,
这里描述了如何在 firebase(nosql 数据库)中创建或构建多对多关系,这很容易,

companyContractors
  companyKey1
    contractorKey1: true
    contractorKey3: true
  companyKey2
    contractorKey2: true
contractorCompanies
  contractorKey1
    companyKey1: true,
    companyKey2: true
  contractorKey2
    companyKey2: true
  contractorKey3
    companyKey1: true
Run Code Online (Sandbox Code Playgroud)

但是当我想获得所有承包商的特定公司时,我可以只使用一个请求吗?因为在这种情况下,我只得到 id 列表,在那里之后,使用 js 循环或 forEach,我做了多个请求。

通常在其他 API 上,我只使用

URL/contractor/:id/company or 
URL/company/:id/contractors 
Run Code Online (Sandbox Code Playgroud)

如何在firebase上做到这一点?
有一个使用angular2,angularfire2的例子会很酷,
谢谢

AskFirebase

javascript nosql firebase firebase-realtime-database angularfire2

5
推荐指数
1
解决办法
1799
查看次数

Firebase Firestore-关系数据设计方法

我是Firebase的新手,我正在努力使有关1-1和1-many的“关系”数据的最佳数据库模型设计成为现实。

我们正在使用Firestore数据库(而不是实时数据库)。

假设我们有Projects可以包含多个Users,并且User可以多个Projects

用户界面需要显示的列表UsersProject,显示的东西喜欢emailfirstnamelastnamedepartment

存储关系的最佳方法是什么?

  • 文档中的UserID 数组Project
  • Project文档中的ID映射?

我已经阅读了推荐的上述方法,但这是否适用于实时数据库Firestore支持Sub Collection,听起来更合适……

如果它只是ID的映射或数组,那么您将如何检索有关用户的剩余数据?这是否必须坐在应用程序UI中?

如果它是用户文档的子集合,是否有任何方法可以维护数据完整性?如果用户更改了名称,那么UI / cloudFunction是否必须更新Su​​b集合中该用户名称的每个条目?

任何帮助/指针赞赏...

firebase firebase-realtime-database google-cloud-firestore

5
推荐指数
1
解决办法
3518
查看次数

Facebook 类型社交网络的 NoSQL 数据库结构

对于 Facebook 类型的社交网络应用程序,需要一个高性能的数据库结构,用于在 Firebase(Cloud Firestore) (NoSQL) 中存储数据。

要存储的数据:

 - Userinfo (name, email etc)
 - Friends
 - Posts
 - Comments on posts.
Run Code Online (Sandbox Code Playgroud)

我对以下两个关于查询性能的数据库结构感到困惑(如果数据库变得巨大)。

(参考:C_xxx 是收藏,D_xxx 是文档)

结构 1

C_AllData
    - D_UserID-1
        name: xxxx,
        email: yyy,
        friends: [UserID-3, UserID-4]
        - C_Posts
            - D_PostId-1
                Text: hhh
                Date: zzz
                - C_Comments
                    - D_CommentId-1
                        UserID: 3
                        Text: kkk
                    - D_CommentId-2
                        UserID: 4
                        Text: kkk
            - D_PostId-2
                Text: hhh
                Date: zzz
                - C_Comments
                    - D_CommentId-3
                        UserID: 3
                        Text: kkk
                    - D_CommentId-4
                        UserID: 4
                        Text: kkk
    - …
Run Code Online (Sandbox Code Playgroud)

database mongodb nosql firebase google-cloud-firestore

5
推荐指数
1
解决办法
5790
查看次数