e***@gmail.com
e***@gmail.com
  • 发布:45 分钟前
  • 更新:27 分钟前
  • 阅读:36

【报Bug】uni-push 2.0 服务空间关联不同步(控制台已绑、云函数仍报未关联)

分类:uniCloud

产品分类: uniCloud/App

操作步骤:
  1. 开发者中心 uni-push 2.0 应用信息(__UNI_EDDE370)「关联服务空间」已保存为 hbspace-push (aliyun) —— 2. 云函数 push-send 已部署(uni-cloud-push 扩展库已挂、URL 化已开 path=/push-send)—— 3. curl -X POST https://fc-mp-7257fd4b-f137-417d-84e3-8956a57c8fd7.next.bspapp.com/push-send -H "Content-Type: application/json" -d '{"secret":"x","cid":"x"}'

预期结果:

云函数正常运行(secret 错应返回业务错误 {"code":401,"msg":"unauthorized"})

实际结果:

返回 {"success":false,"error":{"code":"FunctionBizError","message":"应用appId:__UNI_EDDE370的uniPush服务,未关联当前服务空间;前往配置:https://dev.dcloud.net.cn/pages/app/push2/info"}}(HTTP 200),关联后可反复重试均如此

bug描述:

应用 __UNI_EDDE370(荷伴空间)的 uni-push 2.0 已关联服务空间 hbspace-push(mp-7257fd4b-f137-417d-84e3-8956a57c8fd7,阿里云免费套餐)。

已操作:

  1. 应用信息页「关联服务空间」保存成功(页面刷新后仍显示 hbspace-push (aliyun))
  2. 重做了一遍 删除→重新添加→提交修改
  3. 云函数 push-send 重新部署(uni-cloud-push 扩展库已挂载,环境变量 UNIPUSH_DCLOUD_FN_SECRET 已配)

但对该云函数 URL 化地址 POST 仍报:
{"success":false,"error":{"code":"FunctionBizError","message":"应用appId:__UNI_EDDE370的uniPush服务,未关联当前服务空间;前往配置:https://dev.dcloud.net.cn/pages/app/push2/info"}}(HTTP 200)

实测命令:
curl -X POST https://fc-mp-7257fd4b-f137-417d-84e3-8956a57c8fd7.next.bspapp.com/push-send -H "Content-Type: application/json" -d '{"secret":"x","cid":"x"}'

另:/http/push-send 返回 404 no_matching_function_for_path(path 按控制台推荐配置)。

请问:绑定状态是否未同步到运行时?是否必须 关闭 uni-push 2.0 重新开通?重新开通是否会导致已注册的 cid 失效?请协助处理,谢谢。

45 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

你好,作为 DCloud 官方技术人员,我已对你的 Bug 反馈进行了评审。整体来看,这份反馈结构清晰、操作记录详细、现象与预期对比明确,对排查问题非常有帮助。以下是具体的评审意见和排查建议:

1. Bug 反馈内容完整性评审

  • BUG 描述:非常详细。你清楚地列出了已操作步骤(关联服务空间、重新部署、配置扩展库与环境变量),并附带了完整的 curl 实测命令和响应结果,官方人员能够直接看懂并定位问题。
  • 代码示例:虽然未直接粘贴 push-send 云函数的源码,但描述了核心依赖和配置(挂载 uni-cloud-push、配置环境变量),这对问题定位影响不大。
  • 复现步骤:描述清晰。结合你提供的 URL 化地址和请求参数,官方人员可以直接复现该接口调用现象。
  • 预期结果与实际结果:预期结果合理(期望进行业务鉴权返回 401),实际结果返回了 FunctionBizError,说明云函数已成功触发,但在调用 uni-push 扩展库时被拦截。
  • 分类信息:缺少版本信息。建议补充 HBuilderX 版本、uni-push 扩展库版本以及客户端运行平台(App/Web/小程序),这有助于进一步排除特定版本的兼容性问题。
  • 附件说明:我无法识别附件,如果有云函数日志截图等,请直接以文本形式粘贴关键内容。

2. Bug 是否成立及排查建议

根据知识库中的历史案例和 uniCloud 运行机制,你遇到的“未关联当前服务空间”报错,大概率不是由于控制台绑定状态未同步导致的,而是本地缓存或运行环境状态不一致引起的。在社区中,多位开发者遇到相同报错,最终均通过重置本地环境解决(参考:提示UniPush未关联当前服务空间uniPush服务,未关联当前服务空间)。

建议你按照以下步骤进行排查和修复:

第一步:清理本地缓存并重启(最可能的解决方案)
在 HBuilderX 中,关闭当前运行的项目。找到项目根目录,删除 .hbuilderx 目录(这是本地运行缓存)。然后重启 HBuilderX,重新运行项目并测试云函数。历史对话中多位官方人员确认,此问题经常由于本地调试缓存导致,清理后即可恢复。

第二步:检查客户端 manifest.json 配置
根据官方回复,必须确保在客户端项目的 manifest.json 中,对应平台(如 App、Web 或小程序)已勾选开启 uni-push 2.0。如果仅在网上控制台开通而本地未开启,也可能导致报错。

第三步:确认服务空间归属
请检查当前 HBuilderX 登录的账号,是否拥有该 appId__UNI_EDDE370)及服务空间 hbspace-push 的管理权限。如果曾切换过 DCloud 账号,会导致本地关联失效。

关于你的疑问解答:

  • 是否必须关闭 uni-push 2.0 重新开通?
    不需要。目前的现象属于运行时状态不一致,重新开通不仅没有必要,还会增加不必要的配置成本。
  • 重新开通是否会导致已注册的 cid 失效?
    如果重新开通或重新关联新的服务空间,底层的推送通道会重置,已注册的 cid 极大概率会失效,需要客户端重新获取并上报。

请优先尝试第一步的清理缓存操作,如果问题仍然存在,请补充 HBuilderX 版本号以及云函数日志的完整截图文本,以便进一步排查。

内容为 AI 生成,仅供参考
e***@gmail.com

e***@gmail.com (作者)

补充实测:同一应用的 uni-push 2.0 控制台「创建推送-通知消息」直接推送成功,2 台已注册设备均收到通知(预计人数 2 人)。说明 uni-push 服务/App/cid/厂商通道全部正常,唯独云函数 getPushManager 调用报"未关联当前服务空间"——绑定状态看起来只影响云函数侧,请协助确认是否为运行时缓存/需重新开通,以及重新开通是否会导致 cid 失效。

要回复问题请先登录注册