首页 > 解决方案 > 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。我不明白这个错误来自哪里。

标签: javascriptnode.jsfirebasegoogle-cloud-functions

解决方案


推荐阅读