在 Firebase 中获取另一个用户的 PhotoURL

Getting another user's PhotoURL in Firebase

我将 Firebase 3 SDK 与 AngularFire 一起使用。

我可以使用下面的 AngularFire 代码获取当前经过身份验证的用户的照片 URL:

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

但是,鉴于另一个用户的 UID,我如何获取该用户的照片,以便在页面上显示它?

我假设任何用户都可以读取任何其他用户的 PhotoURL(这是有道理的,因为 PhotoURL 是您的 public 图片)但我找不到如何查找任意用户。我是不是太蠢了,漏掉了一些明显的东西?

Firebase 本身不允许您访问其他用户的 photoUrl。根据提供商的不同,您可以使用他们各自的 API 来获取其他用户的照片。

例如,如果您的提供者是 Google OAuth2,您可以要求额外范围的联系人、日历等(其中很多都有 user/photo 返回的元数据)和使用用户的 google 访问令牌进行 API 调用以获取更多信息。

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

  1. 您没有为尚未登录的人准备的照片。
  2. 这可能违反了提供商的用户隐私政策。
  3. 照片可能已过时,除非您主动同步照片 URL。