如何为 Stream react-native 应用创建/编辑用户配置文件?

问题描述

Stream 中是否有内置的 UI 组件用于 react-native 库来编辑用户的个人资料?

我将提要和活动与我的用户 ID 和令牌服务器端 API 集成在一起工作,但用户显然显示认的“未知”,没有照片。我在这个新应用程序中还没有配置文件存储,所以我想知道是否可以快速插入配置文件屏幕并编辑该配置文件,或者我是否必须构建它并将元数据添加到流用户 API .

解决方法

没有配置文件组件,但您可以访问信息并创建自己的信息。

首先,像这样在 getstream 中设置用户的 profileImage 字段(示例显示服务器端,但您可以使用带有令牌的客户端):

const client = stream.connect('xxx','xxxxxxxxxxxxxx','xxxxxx');
let clientData = await client.user(userId).get();

if (!clientData.data) return null;
  
clientData.data.profileImage = 'https://cdn.com/profile.png';
await client.user(context.params.userId).update(clientData.data);

然后您可以像这样在客户端访问它:(示例显示带有自定义标题的提要。):

const CustomActivity = (props) => {
    return  <Activity {...props} 
    Header={
      <View style={styles.avatarView}>
            <Avatar 
              source={props.activity.actor.data.profileImage}
              size={36}
              noShadow
            />
            <View style={styles.actorView}>
              <Text style={styles.actorName}>{props.activity.actor.data.name}</Text>
              <Text style={styles.metaData}>{formatRelative(new Date(props.activity.time),new Date())}</Text>
            </View>
      </View>
    }>
      </Activity>

        <StreamApp apiKey={STREAM_API_KEY} appId={STREAM_APP_ID} token={user.activity.token}>
          <FlatFeed feedGroup="timeline" notify  Activity={CustomActivity} />
        </StreamApp>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...