android - 为什么 Android Realm 与 MongoDb 同步时不返回任何结果?
问题描述
我正在使用同步的 Android Realm,当我进行基本查询时,它不返回任何项目。
使用以下命令在 build.gradle 中启用同步:
realm {
syncEnabled = true
}
在我的片段中(删除了不相关的位):
private var adapter: MenuRealmAdapter? = null
private var realm: Realm? = null
private var menuItems: RealmResults<MenuItem>? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
realm = App.mongoProxy.getSyncRealm()
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_menu_list, container, false)
buildAdapter(view, RealmFacade.shared.emptyMenu as RealmResults<IListItem>)
buildMainMenu()
return view
}
override fun onDestroy() {
super.onDestroy()
menuItems?.removeAllChangeListeners()
realm?.close()
}
private fun buildMainMenu() {
menuItems = realm?.where<MenuItem>()?.findAllAsync()
menuItems?.addChangeListener{ items ->
// items is empty here //
adapter?.updateData(items as OrderedRealmCollection<IListItem>)
}
}
private fun buildAdapter(view: View, menuItems: OrderedRealmCollection<IListItem>) {
adapter = MenuRealmAdapter(menuItems, mListener, true)
val realmRecyclerView = binding!!.realmRecyclerView
realmRecyclerView.layoutManager =
LinearLayoutManager(view.context)
realmRecyclerView.adapter = adapter
}
MongoProxy.kt:
fun getSyncRealm (userPartition: Boolean = false): Realm? {
val user = app.currentUser() ?: return null
val partitionValue = getPartitionValue(userPartition)
Log.d(TAG, "Get realm for userPartition: $userPartition value: $partitionValue")
val config = SyncConfiguration.Builder(user, partitionValue)
.waitForInitialRemoteData()
.build()
return Realm.getInstance(config)
}
我在 iOS 上运行这个没有问题,所以我知道数据和规则设置得很好,分区值给了我一个合理的值,所以我看不出哪里出错了。
解决方案
facepalm 时刻 - 我关闭了同步以压缩数据库并忘记将其重新打开 XD
推荐阅读
- java - Spring有效注释在控制器中不起作用
- node.js - 无法通过 DialogFlow Fulfillment npm 为 Slack 发送自定义有效负载
- javascript - 请求中使用了 Cookie 标头,但无法找到 YouTube 身份令牌
- swift - 如何从 XCUIApplication 对象访问当前的 SceneDelegate?
- c++ - 最后一行输出错误,数独谜题
- flutter - 右侧 RenderFlex 溢出 8.0 像素
- php - Laravel Belongstomany 带有模棱两可的表
- sql - Laravel QueryBuilder 条件
- android - 如何将 react-native-wheel-picker-android 模块链接到 android | 反应原生
- tensorflow - 如何从多个分布创建批处理分布对象?