当前位置: 首页 > 知识库问答 >
问题:

Android Studio上使用reverfit2的位置为0的JSON中意外的令牌#错误

嵇弘新
2023-03-14

我有一个问题是“在位置0处的JSON中未预期的令牌#”。

我想做的是在FireBase上使用CloudFunction删除FirebaseUser。

没有返回,但错误显示“存在意外的json令牌#”

    null
public interface CloudFunctionsService {

    @POST("deleteUser")
    Call<Void> deleteUser(@Body String uid);
}

    null
public class FunctionRetrofit {
    private static FunctionRetrofit instance = new FunctionRetrofit();

    public static FunctionRetrofit getInstance(){
        return instance;
    }

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    private CloudFunctionsService cfs = retrofit.create(CloudFunctionsService.class);
    public CloudFunctionsService getService(){
        return cfs;
    }

}
    null
exports.deleteUser = functions.https.onRequest((req, res) => {
    if (req.body.uid === undefined) {
      res.status(400).send('No user id defined');
    } else {
      var userId = req.body.uid;

      admin.auth().deleteUser(userId)
          .then(function() {
              console.log("Successfully deleted user");    
          })
          .catch(error=> {
              console.log("Error deleting user: ", error);
          });

      res.status(200).end();
    } 
  });

  • 代码执行(活动)的结果是成功的,但实际上没有改变任何东西
Call<Void> res = FunctionRetrofit.getInstance().getService().deleteUser(user.getUid());
                res.enqueue(new Callback() {
                    @Override
                    public void onResponse(Call call, Response response) {
                        Log.d("success", "suceess");

                    }

                    @Override
                    public void onFailure(Call call, Throwable t) {
                        Log.e("Error", t.getMessage().toLowerCase());
                    }
                });

  • 错误
SyntaxError: Unexpected token # in JSON at position 0
    at JSON.parse (<anonymous>)
    at createStrictSyntaxError (/worker/node_modules/body-parser/lib/types/json.js:157:10)
    at parse (/worker/node_modules/body-parser/lib/types/json.js:83:15)
    at /worker/node_modules/body-parser/lib/read.js:121:18
    at invokeCallback (/worker/node_modules/raw-body/index.js:224:16)
    at done (/worker/node_modules/raw-body/index.js:213:7)
    at IncomingMessage.onEnd (/worker/node_modules/raw-body/index.js:273:7)
    at emitNone (events.js:106:13)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)

共有1个答案

袁波
2023-03-14

当您使用 GSONConverterFactory时,我认为当您使用 @body注释时,应该使用json(或序列化为json)。在传递原始字符串值时,我认为这是错误的地方。

请忽略上面的答案。GsonConverterFactory将把您自己的类型序列化为JSON,但是您发送的是一个原始字符串值。这将不会被序列化,所以id为3的post的正文将是“3”--我认为您为deleteUser调用的api在正文中期望有JSON,而您没有发送,这就是您得到错误的原因。我将检查您正在进行的Firebase API调用的文档,看看它希望post主体是什么格式。更有可能是这样的:

{
    "userId": "3"
}

如果是这种情况,那么您将需要一个类,如:

public class User {
    private String userId;

    public User(String userId){
        this.userId  = userId;
    }
}
 类似资料:
  • 问题内容: 在chrome 页面“ http://fsa.citop.in/lnct/ ” 的控制台中,该POST请求给我错误。 但是,如果我使用(即不使用http://),它不会给我带来任何错误,但数据不会返回任何内容。在POST请求中,需要一个JSON对象。请有人解释这里发生了什么以及如何解决。 问题答案: 这很可能是因为响应是HTML,并且正在尝试将其解析为其他内容。该4位是第一<的。 您应

  • 问题内容: 我已使用php脚本(save-data.php)将数据成功保存到json文件中,但无法使用get-data.php脚本正确获取数据。 错误消息: angular.js : 12520语法 错误: Object.parse(本地)位置0处的JSON中的意外令牌< save-data.php : get-data.php : save-data.json : 样品控制器 : 编辑:我不需要

  • 问题内容: 在处理类似于Facebook的内容提要的React应用程序组件中,我遇到了一个错误: Feed.js:94未定义的“ parsererror”“ SyntaxError:JSON中位置0处的意外令牌< 我遇到了一个类似的错误,事实证明这是render函数中HTML的错字,但这里似乎并非如此。 更令人困惑的是,我将代码回滚到了较早的已知工作版本,但仍然出现错误。 Feed.js: 在Ch

  • 我正试图将一本故事书添加到我的项目中,但出现了此错误 将Storybook支持添加到JSON中位于JSON位置550的“Angular”应用程序SyntaxError:Unexpected token]。在readFileAsJson(C:\Users\Marouen\AppData\Roaming\npm-cache\u npx\17500\node)处解析()_modules@storyboo

  • 我用的是Angular 5.0.0。我想连接。但是,当您启动应用程序时,就会发生错误。

  • 这是我从https://developer.paypal.com/docs/checkout/integrate/得到的代码 我在控制台中得到这个错误 js?客户id=aala1ylo5yjaubynmeptah3mdaq0o9uaoqgdpy2kgs-syd8kbjicmk8qypaee99zzgenopodoge 错误:意外的令牌 错误:意外的令牌 这是服务器的回复 在/home/MYSERV