Firebase实时数据库:获取除当前用户之外的所有用户的列表

xmjla07d  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(91)

我正在React Native和Firebase中构建一个应用程序。我在Firebase实时数据库中有一个用户表。这是该表的外观e

我想获得除当前用户之外的所有用户的列表。这是我正在尝试的代码:

const getUserList = async () => {
        const currentuid = currentuser.uid;
    try {
        const allusers = query(ref(database, 'users/'),endBefore(currentuid));
        console.log("searchusers: ", allusers);
        onValue(allusers, (snapshot) => {
            const data = snapshot.val();
            console.log("data: ", data);
            const users = Object.values(data);
            setUsers(users);
            });
      } catch (error) {
        console.error('Error retrieving user data:', error);
        return [];
      }
}

这将返回所有用户,我希望用户的uid不等于currentuid。在查询中使用not()在最新版本中不起作用,但我想知道是否有任何替代方案。
我想我也可以从DB中获取所有用户,然后使用javascript的filter函数来实现这一点,但我希望通过直接查询数据库来实现这一结果

8i9zcol2

8i9zcol21#

要解决这个问题,你必须使用not-in操作符。你最多可以合并10个!=(not equal)子句。因此,not-in查询将返回id字段存在、不为空并且匹配任何比较值的所有文档。因此,如果您只需要一个UID,将其添加到列表并将该列表传递给查询。

相关问题