2016-11-06 31 views
0

我在我的iOS應用中使用Firebase,但我想確保永遠不會從服務器向客戶端發送值。如何在多部分請求中隱藏Firebase中的值iOS

應用程序中的用戶根據他們的分數顯示給對方。因此,得分爲5的用戶會看到其他得分爲5的用戶。我不想將此值包含在對Firebase的請求/響應中。

我可以在哪裏管理服務器我可以讓服務器端邏輯通過查找服務器上的用戶來處理這個問題,然後調用一個函數來確定誰擁有相同的分數並返回相關用戶,而客戶端卻不會收到用戶評分。

使用Firebase我的理解是,我必須在查詢中將值發送到Firebase,即讓所有用戶使用此用戶的分數。

如何在不暴露用戶評分的情況下做到這一點?我想沿着節點user_scores的某些節點查詢當前用戶的分數,然後使用此查詢的另一個節點users將相關用戶返回給我,而不必在客戶端上嵌套查詢,從而在請求/響應?

非常感謝!

回答

0

你的理解非常重要,沒有辦法像這樣做一個「動態」查詢,而不必實際暴露變化的參數給客戶端。

這裏有兩個想法,你可以嘗試的解決方法是使用:

  1. 「通過隱藏的安全」的變化:而不是暴露單數,模糊的方式,使得猜測值其目的和其他價值觀是不愉快的經歷;並與客戶分享。
    如果你保持你的用戶分組這個密鑰,不只是作爲一個扁平列表,這是一個子節點,你可以使用安全規則來強制用戶不能讀取除他們之外的任何其他組。
    (請注意,這也是數值正確的。安全規則不是過濾器)。
  2. 在更多地參與戰略,可以使查詢靜態。存儲並維護每個用戶的匹配用戶列表,這樣客戶端就可以加載他們自己的個人列表,而不需要任何變化的參數來避免UID。
    (這可能不是,如果有涉及到大量的運動確實可行的,但它可能在某些情況下,邊工作。)
相關問題