Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否可以使用';firebase管理员';包裹_Node.js_Firebase_Firebase Admin - Fatal编程技术网

Node.js 是否可以使用';firebase管理员';包裹

Node.js 是否可以使用';firebase管理员';包裹,node.js,firebase,firebase-admin,Node.js,Firebase,Firebase Admin,我有基于服务帐户访问的节点应用程序,所以我使用了firebase admin。正如我以前看到的,firebase admin大部分都是重复的firebase包(除了身份验证部分、签名和其他一些部分),但现在我想调用函数,我找不到任何与firebase.apps[0].functions()等价的函数。httpscalable('myFunction')。我研究了打字脚本,他们甚至没有提到函数 admin.initializeApp({ credential: admin.credential

我有基于服务帐户访问的节点应用程序,所以我使用了
firebase admin
。正如我以前看到的,
firebase admin
大部分都是重复的
firebase
包(除了身份验证部分、签名和其他一些部分),但现在我想调用函数,我找不到任何与
firebase.apps[0].functions()等价的函数。httpscalable('myFunction')
。我研究了打字脚本,他们甚至没有提到函数

admin.initializeApp({
  credential: admin.credential.cert('./service-account-credentials.json'),
  databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
});

const config = {
  storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
};

const storageBucket = admin.storage().bucket(config.storageBucket);
const firestore = admin.firestore();



// const functions = admin.apps[0].functions(); // not possible
const functions = firebase.apps[0].functions(); // possible, but Firestore.apps not initialized

我的选项是什么?

在Node.js Admin SDK for firebase中没有调用可调用云函数的
firebase函数
客户端

但这并不是一个不合理的请求,所以我建议在上提交一个功能请求,这样其他人也可以参与进来


同时,唯一的选择是实现您自己,可能是基于他们的。

以这段代码结束。用户id是firebase用户uid

const firebaseApp = async (userId: string) => {
  if (firebase.apps?.length) {
    firebase.apps.forEach((app) => app.delete());
    console.log(`Deleted ${firebase.apps.length} apps`);
  }

  const customToken = await admin.auth().createCustomToken(userId);
  const firebaseApp = firebase.initializeApp(config);

  await firebaseApp.auth().signInWithCustomToken(customToken);

  return firebaseApp;
};

谢谢你的回答,我期待着这样的回答。实际上,我正在考虑使用firebase用户的电子邮件和密码为“firebase”lib初始化另一个应用程序。我来到这里,是想从运行Nodejs的Google Cloud IoT设备中找到一种使用
HttpScalable
的方法。我需要调用一个云函数,请求Mender在他们的平台上对设备进行预授权。当设备首次启动时,从systemd服务@DougStevens提到使用一个服务帐户,我有,但听起来并不能解决我的问题。这方面有什么新的发展或建议的解决方法吗?我在回答中提到的解决方法仍然是我所知道的唯一的解决方法。我尝试使用web sdk运行,因为它注意到它适合于“运行Node.js的IoT设备”。但是它扔<代码>menderPreAuth错误:错误:内部(节点:773)未处理PromiserEjectionWarning:错误:新HttpsErrorImpl(/data/node_modules/.pnpm/@firebase)处的内部/functions@0.6.1_e9d66a23fa701e65014ff8d410061da5/node_modules/@firebase/functions/dist/index.node.cjs.js:62:28)什么是“错误:内部”?对不起,但这不是一个好地方,以帮助这一点。如果您在应用程序中实现云功能时遇到问题,请在自己的应用程序中发布新问题。
const firebase = await firebaseApp('WObPvJbZDIR9WB72Tun8Jg4D0ky2');

await firebase
  .functions('europe-west1')
  .httpsCallable('myFunction')(doc);