我正在尝试从ReactVR内部使用Firebase实时数据库(它建立在ReactNative之上)。
当我尝试收听某个引用时,它会抛出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源代码,因此无法对其进行调试。
在这里会有所帮助。 :)谢谢