标签: realm

在Realm中更新语句

我有VisitingCardPOJO表格.我想要更新单个条目,如果 没有= 3

VisitingCardPOJO.java

public class VisitingCardPOJO extends RealmObject {

   @PrimaryKey private int no;
    private String name;
    private String address;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
Run Code Online (Sandbox Code Playgroud)

android realm

11
推荐指数
2
解决办法
6487
查看次数

通过Android Java中的主键获取Realm对象的正确方法

我想知道是否有一种正确的方法来检索一个对象,因为它在Realm for Android中具有主键.我知道这个方法objectForPrimaryKey确实存在于Swift中,但在Realm for Android中似乎没有这样的对应物.我真的认为这样做realm.where(EventInfo.class).equalTo("id", eventInfo.id).findFirst();看起来很浪费(至少它不是手腕友好的).我错过了一些方法吗?我目前正在使用Realm 1.0.1

java android realm

11
推荐指数
3
解决办法
2万
查看次数

境界,避免存放一些财产

我需要在我的User模型中实现一个协议,它需要一些特殊的属性.但我想避免将它们存储/保存在Realm数据库中.

我没有在文档中看到是否有关键字.有没有诀窍避免保存一些属性?

public final class User: Object, Mappable, AvatarImageViewDataSource {

dynamic var id: Int = 0
dynamic var desc: String? = nil
dynamic var email: String? = nil
dynamic var firstName: String? = nil
dynamic var lastName: String? = nil

...

public var myPropertyIDontWantToSave: String? = nil // I don't want this to be stored
Run Code Online (Sandbox Code Playgroud)

realm swift

11
推荐指数
1
解决办法
5080
查看次数

RLMException:'对象'Book'迁移到Swift 4上不存在'主键属性'serial'

我在iOS上使用Swift 4编译遇到了这个问题,在启动时应用程序崩溃时出现以下消息

RLMException', reason: 'Primary key property 'serial' does not exist on object 'Book''
Run Code Online (Sandbox Code Playgroud)

我看到了类似的错误消息,但不是同一个.这就是我的对象的样子

import Foundation
import RealmSwift

class Book: Object {
    dynamic var serial: String = ""
    dynamic var title: String = ""
    dynamic var pages: Int = 0
    dynamic var genre: String = ""

    override static func primaryKey() -> String? {
        return "serial"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过Realm Browser应用程序检查default.realm文件时,我注意到这些条目只有#(0,1,2)并且没有数据.如果我注释掉主键,它会运行,但Realm中没有任何内容存储在此对象中.无法弄清楚为什么它会崩溃!

realm ios swift

11
推荐指数
3
解决办法
6985
查看次数

将 Realm 与 SwiftUI 结合使用时索引越界

我一直在玩 SwiftUI,并且一直在编写一个小型膳食计划/待办事项列表样式的应用程序。我能够让 Realm 与 SwiftUI 一起工作,并编写了一个小的包装器对象来获取 Realm 更改通知以更新 UI。这对于添加项目和 UI 得到正确更新非常有用。但是,当使用滑动删除或其他方法删除项目时,我从 Realm 收到索引越界错误。

这是一些代码:

内容视图:

    struct ContentView : View {

    @EnvironmentObject var userData: MealObject
    @State var draftName: String = ""
    @State var isEditing: Bool = false
    @State var isTyping: Bool = false

    var body: some View {
        List {
            HStack {
                TextField($draftName, placeholder: Text("Add meal..."), onEditingChanged: { editing in
                    self.isTyping = editing
                },
                onCommit: {
                    self.createMeal()
                    })
                if isTyping {
                    Button(action: { self.createMeal() }) {
                        Text("Add")
                    }
                }
            }
            ForEach(self.userData.meals) …
Run Code Online (Sandbox Code Playgroud)

realm ios swift swiftui

11
推荐指数
1
解决办法
1732
查看次数

更新iOS后,所有使用该框架的应用都停止在设备上运行,而是在模拟器上运行

错误:
{ dyld:库未加载:@rpath/Realm.framework/Realm 引用自:/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Favorite Places 原因:没有找到合适的图片。确实发现:/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm:代码签名对'/private/var/containers/Bundle无效/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'

    /private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=25
    /private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: code signature invalid for '/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'

    /private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=1
    /private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: code signature invalid for '/private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm'

    /private/var/containers/Bundle/Application/43190AF8-F437-4B8F-9827-DDEA599AF618/Favorite Places.app/Frameworks/Realm.framework/Realm: stat() failed with errno=1
(lldb) 
}
Run Code Online (Sandbox Code Playgroud)

xcode realm ios cocoapods firebase

11
推荐指数
1
解决办法
3909
查看次数

Looper 线程上的 CoroutineDispatcher

我有一个帮助程序类,用于在数据库领域上执行一些工作。如您所知,我们在使用领域时有一些限制,例如:

  1. Realm 实例不会在非循环线程上自动刷新。
  2. Realm 对象只能在创建它们的线程上访问

我的 Helper 类扩展 CoroutineScope并提供了CoroutineContext我使用的这段代码 Executors.newSingleThreadExecutor().asCoroutineDispatcher()

但我的问题是所有作业都CoroutineScope在非循环线程上运行,所以我如何创建一个ExecutorCoroutineDispatcher在单个循环线程上运行的作业。

很明显我不想使用,Dispatchers.Main因为它应该在我的数据库上完成工作

multithreading android realm kotlin kotlin-coroutines

11
推荐指数
1
解决办法
2464
查看次数

尝试导入领域,但出现错误:缺少领域构造函数。你运行了“pod install”吗?(我用的是windows)

我正在使用 React Native 制作一个移动应用程序。我想使用领域(mongodb)。
所以运行后:

npm install realm
Run Code Online (Sandbox Code Playgroud)

领域已正确添加到“node_modules”中,我尝试使用以下命令导入领域:

import Realm from "realm";
Run Code Online (Sandbox Code Playgroud)

如果我执行 npm start 并测试该应用程序,我会收到以下错误消息:

错误:缺少领域构造函数。你运行了“pod install”吗?请参阅https://realm.io/docs/react-native/latest/#missing-realm-constructor进行故障排除

我正在使用 Windows 并在 Android 设备上测试该应用程序。互联网上有关此事的早期问题表明,在我的情况下不需要进行“pod install”。

我还尝试自动链接领域:

react-native link realm
Run Code Online (Sandbox Code Playgroud)

但后来我收到警告:

警告 不推荐调用react-native link [packageName],以支持自动链接。它将在下一个主要版本中删除。自动链接文档: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md (节点:26016)警告:访问循环依赖项内模块导出的不存在的属性“padLevels”(用于node --trace-warnings ...显示警告的创建位置)

  1. 这是否意味着自动链接不成功,因为自动链接将在下一版本中删除?

  2. 你们中有人对如何在我的 React Native 项目中成功导入 Realm 有建议吗?

以下是一些依赖版本:

“expo”:“^44.0.0”,
“领域”:“^10.14.0”
“react-native”:“0.64.3”,

realm npm react-native expo

11
推荐指数
1
解决办法
4875
查看次数

结合Realm.io和Firebase

我想创建可以在线和离线运行的Android应用程序.可以将Realm.io与离线数据库和Firebase组合为在线服务.

我正在尝试创建简单的应用程序,直接将realm对象添加到firebase,但我得到错误异常,如下所示:

java.lang.NoClassDefFoundError: rx.Observable
at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
at java.lang.Class.getDexCacheType(Class.java:476)
at java.lang.reflect.Method.getReturnType(Method.java:183)
at java.lang.Class.getDeclaredMethods(Class.java:672)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass._addMemberMethods(AnnotatedClass.java:593)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveMemberMethods(AnnotatedClass.java:421)
at com.fasterxml.jackson.databind.introspect.AnnotatedClass.memberMethods(AnnotatedClass.java:243)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addMethods(POJOPropertiesCollector.java:457)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:233)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:142)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forSerialization(BasicClassIntrospector.java:68)
at com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forSerialization(BasicClassIntrospector.java:11)
at com.fasterxml.jackson.databind.SerializationConfig.introspect(SerializationConfig.java:490)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:133)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:478)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:97)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
at com.firebase.client.Firebase.setValueInternal(Firebase.java:336)
at com.firebase.client.Firebase.setValue(Firebase.java:298)
at com.pringstudio.firebaserealm.MainActivity$1.onClick(MainActivity.java:56)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                                Caused by: java.lang.ClassNotFoundException: Didn't find class "rx.Observable" on path: …
Run Code Online (Sandbox Code Playgroud)

java android realm firebase

10
推荐指数
1
解决办法
4119
查看次数

在Realm Android中使用List <String>的最佳方法是什么?

我在Realm Android中使用RealmString替代List <String>.但是我遇到了RealmChangeListener的问题.我在下面的例子中使用了许多模型中的RealmString,如Dog,Cat,Chicken.但当任何人改变数据时,所有这些都会改变.

例如:当我拯救狗 - >狗变化和猫变化.

我可以通过使用RealmDogString,RealmCatString,RealmChickenString解决这个问题,但它复制了我的代码.谁有更好的解决方案?

这是我的示例代码:

public class RealmTestActivity extends AppCompatActivity {
    private Context context;
    private Realm realm;

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_realm_test);

        Stetho.initialize(
            Stetho.newInitializerBuilder(this)
                .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                .enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build()).build());

        context = this;

        RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
        Realm.setDefaultConfiguration(realmConfig);
        realm = Realm.getDefaultInstance();

        final RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
        puppies.addChangeListener(new RealmChangeListener<RealmResults<Dog>>() {
          @Override
          public void onChange(RealmResults<Dog> results) {
            System.out.println("XXX Dog ::" + puppies.size());
            Toast.makeText(context, "Dog Change", Toast.LENGTH_SHORT).show();
            puppies.size();
          }});


        final RealmResults<Cat> puppiesCat = realm.where(Cat.class).lessThan("age", 2).findAll();
        puppiesCat.addChangeListener(new RealmChangeListener<RealmResults<Cat>>() {
          @Override …
Run Code Online (Sandbox Code Playgroud)

android realm

10
推荐指数
1
解决办法
2784
查看次数