gpt4 book ai didi

android - `User` 不是该 Realm 架构的一部分 - 如何确定 'User' 是否存在?

转载 作者:行者123 更新时间:2023-11-30 00:32:17 26 4
gpt4 key购买 nike

假设我想知道 User 是否为空。

这是我的代码:

public boolean isEmpty() {
Realm myRealm = Realm.getInstance(this);
User results1 = myRealm.where(User.class).findFirst();
return results1 == null;
}

如果是第一次使用该应用程序,我需要知道这一点,因为如果是这种情况,我需要让用户填写表格。 (这不是真正的身份验证,只是一种简单的形式)。

在这种情况下,我如何在不创建记录的情况下知道用户是否存在。

编辑:

这是堆栈:

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ga.xuser/com.example.ga.xuser.View.Activities.Profile}: java.lang.IllegalArgumentException: User is not part of the schema for this Realm
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)

最佳答案

原因 - 缺少架构迁移。当您创建新的 RealmModel 类(在您的情况下为 User )时,您需要将新对象添加到现有数据库架构中。或者您可以删除数据库,在这种情况下,Realm 将创建新的架构,其中将包含您所有的模型。

迁移

您可以在Migrations 中找到非常干净的 sample 一段教育。如果需要更多详细信息,另请参阅 migration sample app在 GitHub 上。

附言如果表达式 Realm.getInstance(this) 中的关键字 this - 它是 Context 的实例,则您使用超旧的 Realm 版本。如果我没记错的话,Realm.getInstance(Context) 在 0.83.0 中被移除了。我建议更新到最新版本的 Realm ( cerrent 3.2.1 )。

关于android - `User` 不是该 Realm 架构的一部分 - 如何确定 'User' 是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080661/

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