簡體   English   中英

graphql_flutter 突變查詢需要返回語句 - 不確定如何添加它

[英]graphql_flutter mutation query expects return statement - not sure how to add it

builder 方法上的變異查詢需要返回語句,我不確定在何處以及如何將其添加到以下代碼中。 我相信變異查詢應該返回操作的通過或失敗。

在過去的幾天里,我一直在努力解決這個問題。 我仍然不知道出了什么問題。

我有這個方法,當用戶填寫一次性代碼時,它會在 onCompleted 回調上調用。

createUser 突變查詢 -

class GraphQlMutations {
  final String createUser = r'''
  mutation createUser($uid: ID!, $fullname: String!, $phone: String!, $photourl: String, $createdtime: String){
    createUser(uid: $uid, fullname: $fullname, phone: $phone, photourl: $photourl, createdtime: $createdtime){
      uid
      fullname
      phone
      photourl
      createdtime
    }
  }
''';
}

void signInWithPhoneAuthCredential(
      PhoneAuthCredential phoneAuthCredential) async {
    setState(() {
      showLoading = true;
    });
    try {
      setState(() {
        showLoading = false;
      });
      final authCredential =
          await _auth.signInWithCredential(phoneAuthCredential);
      User? user = authCredential.user;
      print(user);
      if (authCredential.user != null) {
        Mutation(
          options: MutationOptions(
              document: gql(GraphQlMutations().createUser),
              onCompleted: (dynamic resultData) {
                ScaffoldMessenger.of(context)
                    .showSnackBar(SnackBar(content: Text('New user added')));
              }),
          builder: (RunMutation createUser, QueryResult? result) {
            if (user != null) {
              final DateTime? createdTime = user.metadata.creationTime;
              final DateFormat formatter = DateFormat('yyyy-MM-dd');
              final String userCreatedTime = formatter.format(createdTime!);
              try {
                createUser({
                  'uid': user.uid,
                  'fullname': _fullname.text,
                  'phone': user.phoneNumber,
                  'photourl': 'https://www.bol.com',
                  'createdtime': userCreatedTime,
                });
                Navigator.pushReplacement(context,
                    MaterialPageRoute(builder: (context) => Conversations()));
              } catch (e) {}
            }
          },
        );
      }
    } 
  }

Vscode 指出了 builder 方法的一個錯誤,它確切地說 -

正文可能會正常完成,從而導致返回 'null',但返回類型可能是不可為 null 的類型。 嘗試在

請在 graphq_flutter 方面具有專業知識的人提供幫助。

謝謝。

您是否在 graphql 控制台中檢查了您的突變查詢,因為突變查詢需要返回字段或受影響的行,如圖所示graphql變異查詢

並且如果您運行聲音空安全,那么您還應該考慮您的任何字段(uid、全名、電話,...)都沒有重新調整空值。

如果問題未解決,您能否提供有關createUser更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM