我正在尝试从 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 源代码,因此我也无法对其进行调试。
希望在这里得到一些帮助。:) 谢谢