Skip to content

Instantly share code, notes, and snippets.

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const request = require("graphql-request");
const client = new request.GraphQLClient('<your-graphql-endpoint>', {
headers: {
"content-type": "application/json",
"x-hasura-admin-secret": "<your-admin-secret>"
}
})
void main() => runApp(AuthCheck());
class AuthCheck extends StatefulWidget {
@override
_AuthCheckState createState() => _AuthCheckState();
}
class _AuthCheckState extends State<AuthCheck> {
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
FirebaseUser user;
final HttpsCallable callable =
CloudFunctions.instance.getHttpsCallable(
functionName: 'registerUser',
);
try {
await callable.call(<String, dynamic>{
'email': email.text,
'displayName': name.text,
'password': password.text
class MainApp extends StatelessWidget {
final FirebaseUser user;
final token;
const MainApp({Key key, this.token, this.user}) : super(key: key);
@override
Widget build(BuildContext context) {
final HttpLink httpLink = HttpLink(
uri: '<your-graphql-endpoint>',
String getQuestion = """
query GetQuestion(\$userID: String!) {
unanswered_questions(args: {userid: \$userID}, limit: 1) {
id
question
question_answers {
id
answer
is_correct
}
addAnswer(
String questionID,
String answerID,
) async {
String addAnswer = """
mutation addAnswer(\$questionID: uuid!, \$answerID: uuid!, \$userID: String!) {
insert_user_answers(objects: {question_id: \$questionID, answer_id: \$answerID}) {
affected_rows
}
}
String fetchScores = """
subscription fetchScores {
users(order_by: {score: desc}) {
name
score
}
}
""";
Subscription(