【发布时间】: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