【问题标题】:Syncing Hasura and Firebase Users using cloud functions使用云功能同步 Hasura 和 Firebase 用户
【发布时间】:2021-07-16 00:54:42
【问题描述】:

我正在尝试在 Firebase 和 Hasura 之间同步我的用户。我的 Firebase 函数不会引发任何错误,但是,它不会更新 Hasura。谁能向我解释我缺少的部分?

我的火力基地功能:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const { request, gql, GraphQLClient } = require('graphql-request')


const config = functions.config();
const endpoint = config.hasura.url;
const adminSecret = config.hasura.admin;
const graphQLClient = new GraphQLClient(endpoint, {
  headers: {
    "content-type": "application/json",
    "x-hasura-admin-secret": adminSecret
  }
});
admin.initializeApp(functions.config().firebase);

exports.createUser = functions.auth.user().onCreate(async user => {
  const { uid: id, email } = user;

  const mutation = gql`
    mutation($id: String!, $email: String) {
      insert_users_one(object: { user_firebase_id: $id, user_email: $email }) {
        user_firebase_id
        user_email
      }
    }
  `;

  try {
    const data = await graphQLClient.request(mutation, {
      id,
      email,
    });
    
    return data;

  } catch (e) {
    console.log(e);
  }
});

日志返回

Function execution took 521 ms, finished with status: 'ok'
createUser
}

【问题讨论】:

  • 我不熟悉 Hasura 来回答这个问题,但您似乎使用的是字符串文字模板,这确实引入了行空格 \n 可能会干扰。从 Firebase 方面来看,一切似乎都很好。只需确保在函数结束时返回即可。

标签: node.js firebase graphql google-cloud-functions hasura


【解决方案1】:

字符串文字创建了一个新行 (\n) 并声明了一条注释 @DIGI Byte

还有其他方法,但为了简单起见,我改变了它的结构

  const mutation = gql`
    mutation($id: String!, $email: String) {
      insert_users_one(object: { user_firebase_id: $id, user_email: $email }) {
        user_firebase_id
        user_email
      }
    }
  `;

 const mutation = gql`mutation($id: String!, $email: String)\{insert_users(objects: [{user_firebase_id: $id,user_email: $email}]) {affected_rows}}`;

我知道必须有更有效的方法来解决此问题,但如果其他人遇到类似问题。我会把它留在这里。

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2021-01-11
    • 2018-08-19
    相关资源
    最近更新 更多