收藏
回答

小程序云函数切换环境怎么做到修改一处,然后多处被更改?


回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-09-17

    全局设置一个app.globalData.envID

    环境变量传进云函数就可以啦

    2019-09-17
    有用 1
    回复 4
    • 、老妖怪
      、老妖怪
      2019-09-17
      是在云函数的event里面取么?然后调用cloudConfig方法动态更新?我有这样做但是也没效果呢
      2019-09-17
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-09-17回复、老妖怪

      1.在app.js里设置使用的云环境ID,这样只需改一个地方就好了,这个环境ID也可以读取自己后端服务器配置的值,赋给globalData.env

      2.在调用云函数的时候,传进去

          wx.cloud.callFunction({

              name: '云函数名',

              data: {

                  env: t.globalData.env,

                  id:'....',

                  data:{....}

                   // 其他内容

              }

          })

      3.在云函数里指定环境ID

          // 云函数入口文件

          const cloud = require('wx-server-sdk')

          

          // 云函数入口函数

          exports.main = async (event, context) => {

              if(!event.env) return {errCode:-1, errMsg:'环境id为空'}

              

              cloud.init({

                  env: event.env,

                  traceUser: true

              })

              const db = cloud.database({

                  env: event.env

              })

              return new Promise((resolve, reject) => {

                  var id = event.id

                  db.collection('xxxx').doc(id).set({

                      data: event.data

                  }).then(res=>{

                      resolve(res)

                  }).catch(res=>{

                      reject(res)

                  })

              })

          }

          

      2019-09-17
      1
      回复
    • 、老妖怪
      、老妖怪
      2019-09-17
      我的天,困扰我两天的问题 。终于解决了,多谢啊 大佬!!!
      2019-09-17
      回复
    • 摄影杨志辉
      摄影杨志辉
      2021-09-05回复o0o有脾气的酸奶
      大佬,我的尝试了,没起作用,无论是在app.js里指定环境,还是在第二环境云函数里指定环境,都只调用默认环境,在小程序首页index.js里指定环境直接就没有返回环境,开发者工具里切换了,控制台不关事,只是查看,也设置好权限了,怎么指定也用不到第二环境。。。。
      2021-09-05
      回复
登录 后发表内容
问题标签