gpt4 book ai didi

android - 具有自定义类的 Syncano Android 社​​交登录导致错误

转载 作者:可可西里 更新时间:2023-11-01 11:43:08 25 4
gpt4 key购买 nike

Syncano 中的社交登录不适用于自定义配置文件。我使用 SocialAuthBackend.FACEBOOK 并传递带有自定义类的 token ,例如:

@SyncanoClass(name = "user_profile")
public class UserProfile extends AbstractUser {
}

一起作为:

syncano.loginSocialUser(UserProfile.class, SocialAuthBackend.FACEBOOK, loginResult.getAccessToken().getToken()).sendAsync(new SyncanoCallback<UserProfile>() {
//...
});

结果是:

IllegalArgumentException: field com.syncano.library.data.AbstractUser.profile has type com.syncano.library.data.Profile, got com.google.gson.internal.LinkedTreeMap
at java.lang.reflect.Field.set(Native Method)
at java.lang.reflect.Field.set(Field.java:557)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:119)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:217)
at com.google.gson.Gson.fromJson(Gson.java:861)
at com.google.gson.Gson.fromJson(Gson.java:826)
at com.google.gson.Gson.fromJson(Gson.java:775)
at com.google.gson.Gson.fromJson(Gson.java:747)

无法使用此功能(或相关文档)修复它或在线找到任何示例。

最佳答案

当您想声明自己的用户配置文件时,您应该创建 2 个类:

  1. 实现 AbstractUser<T> (其中 T 是您的个人资料类别名称)
  2. 你自己的类(class) UserProfile扩展类 Profile类(来自 syncano package )。

示例代码:

    @SyncanoClass(name = "user_profile")
public class MyUserProfile extends Profile {
@SyncanoField(name = "avatar")
public SyncanoFile avatar;
}

public class CustomUser extends AbstractUser<MyUserProfile> {
public CustomUser(String login, String pass) {
super(login, pass);
}
}

即将发布:

从版本 4.0.6(尚未发布)开始,您不再需要配置文件中的 @SyncanoClass 注释(可选)。

关于android - 具有自定义类的 Syncano Android 社​​交登录导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35369445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com