过滤uid时,Swift Firebase查询返回null

时间:2017-04-01 17:35:20

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

我试图通过比较他们的uid和条目的uid属性来检索属于用户的所有条目。

Snap (Entry) <null>

返回

"Users": {
  "$uid": {
    ".write": "!data.exists() || auth.uid === $uid",
    ".read": "auth !== null" 
  }
},

"Entry":{
    ".read" : "auth != null",
    ".write" : "auth != null",
    ".indexOn" : "uid" 
}

目前我有这样的数据结构:

  • 条目

    • KgZkrnjFYXG9zKzfgh5
      • 日期:&#34; 2017年3月31日&#34;
      • text:&#34; test 123&#34;
      • uid:&#34; vKSJm500zCQmy2TTFUgv8FepknF2&#34;
      • wordcount:&#34; 6&#34;
  • 用户

    • vKSJm500zCQmy2TTFUgv8FepknF2
      • 电子邮件:&#34; test7@test.com"
      • 提供商:&#34;电子邮件&#34;

遵循以下规则:

 let query = self.ref?.child("Entry").queryOrdered(byChild: "uid").queryEqual(toValue: uid)
    print("/n")
    print(query)

Optional((/Entry {
ep = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")";
i = uid;
sp = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")";
}))

我有点困惑,因为当我尝试自己打印查询时,我得到了

CREATE OR REPLACE FUNCTION my_verification_function (
   username VARCHAR2, password VARCHAR2, old_password VARCHAR2)
RETURN BOOLEAN AS
BEGIN

   IF LENGTH(password) < 6 THEN 
      RETURN FALSE; 
   ELSIF (password = "password" OR password = '123' OR password = old_password) THEN 
      RETURN FALSE                                 
   ELSE 
      RETURN TRUE;
   END IF;
END my_verification_function;
/

alter profile default limit password_verify_function my_verification_function;

我不确定这意味着什么。在我通过uid订购之前,我应该更改查询以通过autoID吗?

1 个答案:

答案 0 :(得分:0)

问题不在于firebase查询,而是我存储UID的方式。 当我通过我的数据库查询时,我正在使用

    Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\") 

而不是

    vKSJm500zCQmy2TTFUgv8FepknF2

快速更改可选值修复它。