javascript - obj.hasOwnProperty 不是 Firebase 数据库查询中的函数错误
问题描述
我正在 Firebase 中部署一个云功能,它充当 OAuth2 中间件,处理授权并获取令牌。获取访问令牌和用户详细信息后,我想将令牌和用户详细信息存储在数据库中,并更新或创建用户。代码来自这个例子。但我总是从函数日志中收到相同的错误消息:
TypeError: obj.hasOwnProperty is not a function
at each (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:553:17)
at validateFirebaseData (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:1511:9)
at /srv/node_modules/@firebase/database/dist/index.node.cjs.js:1528:13
at each (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:554:13)
at validateFirebaseData (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:1511:9)
at /srv/node_modules/@firebase/database/dist/index.node.cjs.js:1528:13
at each (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:554:13)
at validateFirebaseData (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:1511:9)
at /srv/node_modules/@firebase/database/dist/index.node.cjs.js:1528:13
at each (/srv/node_modules/@firebase/database/dist/index.node.cjs.js:554:13)
下面是创建用户的函数
async function createFirebaseAccount(uid, displayName, email, accessToken) {
const databaseTask = admin.database().ref(`/idpAccessToken/${uid}`).set(accessToken);
const userCreationTask = admin.auth().updateUser(uid, {
displayName: displayName,
email: email,
emailVerified: true,
}).catch((error) => {
if (error.code === 'auth/user-not-found') {
return admin.auth().createUser({
uid: uid,
displayName: displayName,
email: email,
emailVerified: true,
});
}
throw error;
});
// execution stops here, when resolving this tasks
await Promise.all([userCreationTask, databaseTask]);
const token = await admin.auth().createCustomToken(uid);
console.log('Created Custom token for UID "', uid, '" Token:', token);
return token;
}
在所有四种情况下,变量 uid、displayName、email 和 token 都是纯文本字符串。从此函数返回的令牌稍后会使用 . 返回给调用客户端jsonp
。我不明白这个错误来自哪里。
解决方案
推荐阅读
- python - 如何修复运行时错误:无法关闭正在运行的事件循环 - Python Discord Bot
- c# - 如何在 SummaryAdmin 视图上禁用内容字段预览
- sql - 我可以在 HAVING 上计算 SQL 操作而不在 SELECT 之前计算它们吗?
- angular - 如何使用 Angular 使用 on select 方法填充另一个选择中的项目列表
- python-3.x - 如何使刮板抓取的不仅仅是一个谷歌页面
- python - 当类中没有变量时,是否可以初始化实例变量?
- reactjs - 当我单击一个链接时,如何更改另一个组件的状态?
- uitextfield - Xcode 11 Beta 6 UISearchBar 文本字段背景颜色
- bash - 对由多个子进程填充的文件进行准确编号和计数
- android - 没有白色背景的图像视图