You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo React Native调用MongoDB Realm函数报无表映射错误排查

报错原因

你遇到的can't find a table mapping for namespace questiondb.questions错误,根源是当前Realm应用开启了Device Sync设备同步能力,但没有给questiondb.questions集合配置Sync所需的表映射与Schema规则。
控制台直接调用函数能正常运行,是因为控制台运行默认使用服务端管理员权限上下文,会跳过Sync层的映射校验;客户端通过登录用户身份调用函数时,请求会经过Sync规则校验,找不到对应集合的映射配置就会直接抛错,哪怕Atlas侧确实存在对应的库和集合也会触发该问题。

修复步骤
  • 进入Realm应用控制台,打开左侧「Device Sync」配置页
  • 在集合配置板块,添加questiondb库下的questions集合到Sync同步范围
  • 为该集合配置基础Schema,至少声明你代码中使用的name字段为字符串类型即可,保存配置等待Sync部署完成
  • 建议同步修改你的Realm函数写法,原写法没有等待异步插入操作执行完成就会退出函数上下文,容易出现调用返回成功但数据没写入的问题,修改后代码如下:
exports = async function(arg){
  const collection = context.services.get("mongodb-atlas").db("questiondb").collection("questions");
  const insertRes = await collection.insertOne({name: arg});
  console.log('Insert success:', insertRes.insertedId);
  return insertRes;
};
  • 配置生效通常需要30秒到2分钟,生效后重新从客户端发起调用即可正常写入数据。

补充校验:如果配置完还是报错,可以进入Realm控制台的「Rules」菜单,确认mongodb-atlas服务下的questiondb.questions集合的读写权限已经对匿名认证用户开放。

内容的提问来源于stack exchange,提问作者José Carlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:27:25