我正在尝试在Firebase和Hasura之间同步我的用户。我的Firebase函数没有抛出任何错误,但是,它没有更新Hasura。谁能给我解释一下我漏掉的部分?
我的firebase函数:
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
}发布于 2021-04-22 08:12:13
字符串文字创建了一个声明了注释@DIGI Byte的新行(\n) .
还有其他方法,但为了简单起见,我改变了它的结构
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}}`;我知道一定有一种更有效的方法来解决这个问题,但如果其他人遇到类似的问题。我把这个留在这里。
https://stackoverflow.com/questions/67202446
复制相似问题