小编典典

Vue 3 Firebase Auth 通过 id 获取 *any* 用户数据?

all

vue/firebase 的新手。我能够查找如何从身份验证中提取“当前用户”数据没问题,但尝试编写一个可组合的 js,我可以传入任何用户 ID(不一定是当前用户),它将返回用户对象或至少 displayName .

我可以在主题参考中找到的所有文档/视频获取当前用户仅不是其他用户的信息。从谷歌文档它说我应该能够在“检索用户数据”部分中做到这一点。最接近 Vue 代码的模型似乎是“Node.Js”,但它不起作用。

这是我在 getUserById 中得到的

import { getAuth } from 'firebase/auth'

const getUserById = (u) => { // u = user id
    const userData = null
    getAuth()
        .getUser(u)
        .then((userRecord) => {
            // See the UserRecord reference doc for the contents of userRecord.
            console.log(`Successfully fetched user data: ${userRecord.toJSON()}`);
            userData = userRecord
        })
        .catch((error) => {
            console.log('Error fetching user data:', error);
        });

    return { userData }
}
export default getUserById

我得到的错误是 getUser 不是一个函数。我尝试将 getUser 添加到导入但同样的错误。


阅读 108

收藏
2022-07-09

共1个答案

小编典典

无法在 Firebase 的客户端 API 中通过其 UID 查找任何用户的信息,因为这会带来安全风险。Admin SDK 中有一个 API 可以通过用户的 UID 查找用户,但只能在受信任的环境(例如您的开发机器、您控制的服务器或 Cloud Functions/Cloud Run)上使用,而不是在客户端代码。

如果您在应用程序中需要此类功能,您可以将 Admin SDK 中的功能包装在您随后保护的自定义端点中,或者让每个用户将信息写入云数据库(例如实时数据库或 Firestore)并从中读取那里。

2022-07-09