1

我正在尝试从 ReactVR(基于 ReactNative 构建)内部使用 Firebase 实时数据库。

但是,当我尝试收听 ref 时,它会抛出Error during WebSocket handshake: Unexpected response code: 500

这是我使用的代码 -

export default class WelcomeToVR extends React.Component {

  constructor(){
    super();

    var config = {
      apiKey: "<REDACTED>",
      authDomain: "<REDACTED>",
      databaseURL: "<REDACTED>",
      projectId: "<REDACTED>",
      storageBucket: "<REDACTED>",
      messagingSenderId: "<REDACTED>",
    };
    firebase.initializeApp(config);
  }

  componentWillMount() {
    firebase.database().ref(`viewers`).on('child_added', function(data) {
      console.log(data);
    });
  }

  render() {
    return (
      <View>
      </View>
    );
  }
};

AppRegistry.registerComponent('WelcomeToVR', () => WelcomeToVR);

这是控制台中的跟踪 -

WebSocket connection to 'wss://myapp.firebaseio.com/.ws?v=5' failed: Error during WebSocket handshake: Unexpected response code: 500

WrappedWebSocket    @   VM1892:37
connect @   WebSocketModule.js:45
frame   @   ReactNativeContext.js:416
frame   @   createRootView.js:188
_frame  @   VRInstance.js:152

如果我在 RN 上下文之外运行此代码,则效果很好。

我觉得问题出在它试图连接的 WS URL 上。

当我在 RN 上下文之外运行它时,这是它试图连接的 URL -wss://s-usc1c-nss-107.firebaseio.com/.ws?v=5&ns=my-app

但从 RN 组件内部,它尝试 -wss://my-app.firebaseio.com/.ws?v=5

我有点迷失在这里。由于我无法访问 Firebase.js 源代码,因此我也无法对其进行调试。

希望在这里得到一些帮助。:) 谢谢

4

0 回答 0