如何在 back4app 解析服务器中使用两个 useParseQuery 挂钩来实现一对一聊天应用

Posted

技术标签:

【中文标题】如何在 back4app 解析服务器中使用两个 useParseQuery 挂钩来实现一对一聊天应用【英文标题】:How to use two useParseQuery hook in back4app parse server for implementing one to one chat app 【发布时间】:2021-11-04 21:33:22 【问题描述】:

我正在尝试在 back4app 服务器上实现一对一聊天,但我没有找到任何博客,所以我的直觉是这样。 我在数据库中创建了一个类,其中包含从、到和消息的列。 我试图取回消息。 为此我使用 useParseQuery 钩子。我如何使用这个钩子两次,这样我就可以同时获得“来自”和“到”的消息。

const App = () => 
const parseQuery1 = new Parse.Query('Chat_message');
parseQuery1.equalTo('from','amit');

const parseQuery2 = new Parse.Query('Chat_message');
parseQuery2.equalTo('to','amit');


const 
isLive,
isLoading,
isSyncing,
results,
count,
error,
reload
 = useParseQuery(parseQuery2);

console.log(results)
if (isLoading) 
return <ActivityIndicator />;
 
 return (

  <FlatList
    data=results
    
    renderItem=( item ) => (
      <View
        style=
          height: 70,
          flex: 1,
          alignItems: 'center',
          justifyContent: 'center',
        >
        <Text>message: item.get('messages')</Text>
      </View>
    )
  />
  );
 ;

我不知道我的这种做法是否正确,有没有人可以指教或发一些博文进行一对一聊天。感谢 Stack Overflow 的好人。

【问题讨论】:

【参考方案1】:

我使用了 composeQuery。 我曾尝试使用 'and' 并没有奏效,最终尝试使用 or 并且奏效了。

const parseQuery1 = new Parse.Query('Chat_message');
parseQuery1.equalTo('from','amit');

const parseQuery2 = new Parse.Query('Chat_message');
parseQuery2.equalTo('to','amit');

const composeQuery=Parse.Query.or(parseQuery2,parseQuery1)

【讨论】:

以上是关于如何在 back4app 解析服务器中使用两个 useParseQuery 挂钩来实现一对一聊天应用的主要内容,如果未能解决你的问题,请参考以下文章

back4app 解析,如何将用户对象 ID 应用到另一个类指针中

Back4App - 有限数量用户的解析类级别权限

未收到在 Back4App 上解析的 Android 推送通知

使用Back4app-Cli部署本地解析服务器。

如何否定 Parse 的 API (Back4App) 中的查询?具体来说,我如何让一切都没有关系?

解析服务器设置