firebase swift - 用户查询

时间:2016-06-13 15:45:02

标签: swift firebase firebase-realtime-database firebase-authentication

我试图找到一种方法可以查询我的应用程序中的用户。例如,如果我的用户想要搜索用户将他添加为朋友。我想我可以保存Firebase数据库中的所有用户,然后在数据库中执行查询,但它看起来非常低效(并且必须有一个更简单的内置方法来执行此操作)。

1 个答案:

答案 0 :(得分:0)

" .indexOn"是你的解决方案!!

如果您按照以下方式构建日期,则可以查询用户!!在这里,您可以在full_name和reversed_full_name上查询用户。您可以提供要查询的孩子。例如,您可以在人员下添加电子邮件字段,然后添加" email" in" .indexOn" !!!

"people": {
  ".indexOn": ["_search_index/full_name", "_search_index/reversed_full_name"],
  ".read": true,
  "$uid": {
    ".write": "auth.uid === $uid",
    "full_name": {
      ".validate": "newData.isString()"
    },
    "profile_picture": {
      ".validate": "newData.isString()"
    },
    "posts": {
      "$postId": {
        ".validate": "newData.val() === true && newData.parent().parent().parent().parent().child('posts').child($postId).exists()"
      }
    },
    "_search_index": {
      "full_name": {
        ".validate": "newData.isString()"
      },
      "reversed_full_name": {
        ".validate": "newData.isString()"
      }
    },
    "following": {
      "$followedUid": {
        ".validate": "newData.parent().parent().parent().parent().child('followers').child($followedUid).child($uid).val() === true" // Makes sure /followers is in sync
      }
    }
  }

希望这会有所帮助。这是指从Firebase https://github.com/firebase/friendlypix/blob/master/web/database-rules.json

提供的整个安全规则的链接