首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据初始化<StreamApp>

使用数据初始化<StreamApp>
EN

Stack Overflow用户
提问于 2019-07-17 22:28:31
回答 1查看 410关注 0票数 1

我正在使用原生代码的react native。使用‘react-native-native feed’库,我正在尝试让Stream feed在我的应用程序上启动并运行。

我已经使用api密钥、应用程序Id和应用程序密钥设置了我的流帐户。使用firebase函数,我在创建帐户时为用户创建令牌服务器端,然后将其保存到数据库。

代码语言:javascript
复制
const client = stream.connect(
    functions.config().stream.key_id,
    functions.config().stream.secret,
);
const userToken = client.createUserToken(user.uid);
admin.database().ref('users/' + user.uid ).set({
    token: userToken
})

在客户端,我检索当前用户的令牌,然后将其(以及应用程序Id和应用程序密钥)传递给对象。我希望得到一个没有错误的空feed,但是我得到了来自Stream的“数据未定义”错误。

为了开始使用StreamApp对象,我还需要创建客户端或服务器端吗?

代码语言:javascript
复制
import {StreamApp} from 'react-native-activity-feed



render() {
  const { currentUser } = this.state
  const {streamToken} = this.state

  let apiKey = Config.STREAM_API_KEY;
  let appId = Config.STREAM_APP_ID;
  userId = firebase.auth().currentUser.uid;
  let token;
  tokenRef = firebase.database().ref(`users/${userId}`);  
  tokenRef.on('value', (snapshot) => {
    token = snapshot.val().token;
  })

return (
      <StreamApp
      apiKey={apiKey}
      appId={appId}
      token={token}
     >
      </StreamApp>
    )
  }
}

错误:

TypeError:未定义不是对象(计算“”client.currentUser.data“”)

此错误位于:

在StreamApp( ... )中...

EN

回答 1

Stack Overflow用户

发布于 2019-08-03 02:27:41

最终,在服务器返回流令牌之前,render函数被调用是一个问题。

为了解决这个问题,我给了页面从服务器加载流令牌的时间:

代码语言:javascript
复制
render() {
    if(this.state.loading) {
      return (<View style={[styles.container, styles.horizontal]}><ActivityIndicator size="large" color="#0000ff" /></View>);
    }
    return (
      <StreamApp
      apiKey={this.state.apiKey}
      appId={this.state.apiId}
      token={this.state.streamToken}
     >
    </StreamApp>
    )
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57078265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档