2016-11-17 63 views
0

我正在創建應用程序,我將使用Firebase消息傳遞服務。消息傳遞工作正常,但現在我希望在兩個用戶之間進行。如何從Firebase數據庫獲取經過身份驗證的用戶?

我相信我需要提供身份驗證爲每個用戶,然後(通過他們的社交網絡連接或他們的郵件IDS他們的朋友)尋找它們的連接。

我設法創建使用Auth.GOOGLE_SIGN_IN_API和AppInvite.API我的應用程序Google+的認證,但連接在火力其他用戶根本不知道,然後我通過這些鏈接Udacity tutorialCodelabs tutorialFirebase guides去了。 (本教程解釋了同樣的事情,每個人都使用的電子郵件服務提供商驗證,而不是通過Google+的登入。而且,當我通過這些程序最初嘗試Google+的登入問題實際上,它沒有工作,但電子郵件服務提供商的工作。)

不管怎麼說電子郵件提供商也是爲我好,截至目前,但仍然沒有線索如何將兩個用戶連接thriugh火力地堡。我連接了兩個用戶,顯示在我的Firebase身份驗證控制檯中,但是如何將兩個用戶一對一連接?

任何線索?

回答

1

要在社交網絡的兩個用戶之間的連接,通常其中一人已打入關於其他用戶的一些「祕密」的細節。最常見的是,您必須輸入您的朋友的電子郵件地址,然後系統會告訴您它有一個匹配該電子郵件地址的記錄。

您可以通過其電子郵件地址的列表以及它們相應的UID落實火力地堡這樣一個系統:

userLookup 
    "[email protected],com": "uidOfAri" 
    "[email protected]": "uidOfPuf" 

現在,當我鍵入您的電子郵件地址,我可以找到你的UID(並因此與您聯繫)。

爲了確保上述情況,你只授予讀取特定用戶的訪問:

{ 
    "rules": { 
    "userLookup": { 
     "$user": { 
     ".read": true 
     } 
    } 
    } 
} 

有了這個結構,你可以讀取每個特定的用戶,但你不能搜索的用戶列表。因此,如果我知道您的完整電子郵件地址,我只能找到您的uid(並因此連接)。

+0

是的,我需要關於從電子郵件ID中獲取UID的幫助。如何在Android中使用Firebase,沒有找到任何有關該文檔的文檔。還有,如果我在本地保存UID,如何僅在Firebase中將消息發送到該UID? – Ari

+0

您無法使用普通Firebase直接連接兩個用戶。您是否閱讀過https://firebase.google.com/docs/cloud-messaging/?此外,在這種特定情況下,使用https://sendbird.com/等不同的解決方案會更容易 –

相關問題