2016-09-30 67 views
0

我正在使用Firebase 3 SDK和AngularFire。在Firebase中获取其他用户的PhotoURL

我可以使用下面的AngularFire代码来获取当前已验证用户的photoURL:

$firebaseAuth().$getAuth().photoURL;

但是,由于其他用户的UID,如何获取该用户的照片,这样我就可以将其显示在页面上?

我假设任何用户都可以读取任何其他用户的PhotoURL(这是有道理的,因为PhotoURL是公开的图片)但我无法找到如何查看它的任意用户。我是愚蠢的,失去了一些明显的东西吗?

回答

1

Firebase本身不允许您访问其他用户的photoUrl。根据提供商的不同,您可以使用各自的API获取其他用户的照片。例如,如果您的提供商是Google OAuth2,则可以要求提供更多联系人,日历等范围(其中许多用户/照片元数据会被返回),以及使用用户的Google进行API调用访问令牌以获取更多信息。

另一种解决方案可能是缓存登录到服务的用户的照片。所以基本上你会保存所有已登录的人的照片。但这种方法有几个缺点。

  1. 对于尚未登录的用户,您还没有照片。
  2. 这可能违反了提供商的用户隐私政策。
  3. 除非您主动同步photoURL,否则照片可能已过时。
+1

所以,我只是使用用户名和密码认证,并自己填充photoURL值。但最终我在Firebase中创建了一个用户部分,并将照片存储在那里。感谢您解释这个值是什么。 – Simon