如何在uni-app中使用appid来过滤uni-id-users表的数据

发布于 1周前 作者 sinazl 来自 Uni-App

如何在uni-app中使用appid来过滤uni-id-users表的数据
我的uni-id-users表的数据来自不同的终端,两个app,一个后台,我想在其中一个app访问另一个app中的用户数据,但是我用where({ appid: ‘xxxxx’ }) 没有过滤成功,请问需要如何操作

2 回复

appid: “xxxxx”
这样行不行,


在uni-app中,如果你想使用appid来过滤uni-id-users表的数据,可以通过调用后端API来实现。假设你使用的是UniCloud的数据库服务,并且已经配置好了UniCloud和uni-id。以下是一个示例,展示如何在uni-app中使用appid来过滤用户数据。

后端代码(云函数)

首先,在UniCloud的云函数中编写一个函数,用于根据appid过滤用户数据。假设你使用的是JavaScript(Node.js)编写云函数。

// 云函数入口文件
const cloud = require('wx-server-sdk')
const db = cloud.database()

cloud.init()

// 云函数名称
exports.main = async (event, context) => {
  const { appid } = event
  if (!appid) {
    return {
      success: false,
      message: 'appid is required'
    }
  }

  try {
    const result = await db.collection('uni-id-users')
      .where({
        appid: appid
      })
      .get()
    return {
      success: true,
      data: result.data
    }
  } catch (error) {
    return {
      success: false,
      message: error.message
    }
  }
}

前端代码(uni-app)

在uni-app中,你可以使用uni.cloud.callFunction来调用云函数并获取数据。

// 调用云函数获取用户数据
export default function fetchUsersByAppid(appid) {
  return new Promise((resolve, reject) => {
    uni.cloud.callFunction({
      name: 'yourCloudFunctionName', // 替换为你的云函数名称
      data: {
        appid: appid
      },
      success: res => {
        if (res.result.success) {
          resolve(res.result.data)
        } else {
          reject(new Error(res.result.message))
        }
      },
      fail: err => {
        reject(err)
      }
    })
  })
}

// 使用示例
fetchUsersByAppid('yourAppIdHere')
  .then(users => {
    console.log('Users:', users)
  })
  .catch(error => {
    console.error('Error fetching users:', error)
  })

在这个示例中,yourCloudFunctionName应该替换为你实际的云函数名称。fetchUsersByAppid函数返回一个Promise,它调用云函数并处理结果。如果云函数调用成功并且返回的数据包含用户信息,Promise将被解析为用户数据;否则,Promise将被拒绝并包含错误信息。

确保你已经正确配置了UniCloud和uni-id,并且云函数具有访问uni-id-users集合的权限。这样,你就可以在uni-app中使用appid来过滤用户数据了。

回到顶部