gpt4 book ai didi

android - Quickblox (Android) - QBUser.getTags().getItemsAsStringOrNull() 总是返回 null

转载 作者:行者123 更新时间:2023-11-29 01:20:17 26 4
gpt4 key购买 nike

第一次提问,如有疏忽请见谅...

我成功地将用户登录到 Quickblox 聊天服务(用户通过身份验证并登录没有问题)但是当我尝试检索当前用户的标签时,我总是在 logcat 中得到 null。但是,我在预期的 logcat 中获得了用户的登录信息。

我正在通过 QuickBlox 管理页面添加标签,它们在那里是可见的。

这是我的方法,如有任何帮助,我们将不胜感激:

代码

public static void GetUserTags(QBUser user) {

StringifyArrayList<String> tags = user.getTags();
Log.i("User Login", user.getLogin());
Log.i("User Tags", "" + tags.getItemsAsStringOrNull());

}

更新

我使用的是 Android Studio 2.1.1,根据 Quickblox 文档,我首先创建一个新的 QBUser 对象,传递用户名和密码参数(如下所示)。我将此对象存储为名为“用户”的公共(public)静态 QBUser:

public static QBUser user;
[...]
user = new QBUser(username, password);

然后我创建一个新 session ,传递上面创建的用户对象:

QBAuth.createSession(user, new QBEntityCallback<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
GetUserTags();
}

@Override
public void onError(QBResponseException errors) {
}
}

我还扩展了 GetUserTags() 方法以查看我实际返回了多少信息:

public static String GetUserTags() {

StringifyArrayList<String> tags = user.getTags();
Log.i("User", "Login: " + user.getLogin());
Log.i("User", "Password: " + user.getPassword());
Log.i("User", "Email: " + user.getEmail());
Log.i("User", "FullName: " + user.getFullName());
Log.i("User", "Id: " + String.valueOf(user.getId()));
Log.i("User", "Tags: " + String.valueOf(tags));
Log.i("User", "Tags: " + user.getTags().getItemsAsStringOrNull());

return user.getLogin();

}

我只取回用户名和密码的值...

在我回复的这一点上,我意识到我只是在检索我已经提供的值...d'oh!

回到绘图板...

最佳答案

所以,这就是我解决问题的方法。我没有在成功创建 session 后尝试从 QBUser 用户获取所有值,而是添加了一个 GetUser 方法:

private static void GetUser(int userID) {
QBUsers.getUser(userID, new QBEntityCallback<QBUser>() {
@Override
public void onSuccess(QBUser qbUser, Bundle bundle) {
user = qbUser;
GetUserTags();
}

@Override
public void onError(QBResponseException e) {

}
});
}

这将我的公共(public)静态 QBUser 对象设置为每个服务器的对象。

然后我在 QBAuth.createSession() 的 onSuccess 回调中调用该方法,如下所示:

QBAuth.createSession(user, new QBEntityCallback<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle params) {
GetUser(session.getUserId());
}

@Override
public void onError(QBResponseException errors) {
}
}

这是一个如此明显的错误,但我显然忽略了这一错误。

关于android - Quickblox (Android) - QBUser.getTags().getItemsAsStringOrNull() 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228210/

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