我正在开发一个要求用户在 VR 模式下注册的 React 360 应用程序。我的文件中的相关代码SignUp.js
如下:
import fire from "../../Firebase";
import "firebase/firestore";
const db = fire.firestore();
export default class SignUp extends React.Component {
constructor() {
super();
this.state = {
userData: {
name: "",
email: "",
password: "",
},
};
}
createUser = () => {
fire
.auth()
.createUserWithEmailAndPassword(
this.state.userData.email,
this.state.userData.password
)
.then((user) => {
console.log("Successfully created user!");
db.collection("users")
.doc(this.state.userData.email)
.set({
profile: {
email: this.state.userData.email,
name: this.state.userData.name,
},
})
.then(() => console.log("Successfully added user data to db"))
.catch((err) => console.log("Error adding data", err));
})
.catch((error) => {
console.log("Error creating user!", error);
});
};
......
......
我的Firebase.js
代码:
import * as firebase from "firebase";
var config = {
apiKey: "my key...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
measurementId: "...",
};
const fire = firebase.initializeApp(config);
export default fire;
中的相关依赖项package.json
:
"dependencies": {
"react": "16.13.1",
"react-360": "~1.1.0",
"firebase": "^7.14.0",
"react-360-keyboard": "^1.0.2",
"react-360-web": "~1.1.0",
"react-native": "~0.55.4",
"three": "^0.87.0"
},
"devDependencies": {
"babel-jest": "^19.0.0",
"babel-preset-react-native": "^1.9.1",
"jest": "^19.0.2",
"react-devtools": "^2.5.2",
"react-test-renderer": "16.0.0",
"xopen": "1.0.0"
},
发生了什么:输出如下:
>>> Successfully created user!
>>> GET https://firestore.googleapis.com/... 400
可以创建和验证用户,我已经通过在控制台中检查新用户进行了验证。但是,当我尝试将新用户数据写入我的 Firestore 数据库时,我得到一个状态 400。在 Chrome 中,它只是说:Your client has issued a malformed or illegal request...
。如有必要,我可以分享更多关于网络跟踪的信息。
我已经尝试过:
我使用与上述相同的代码和 Firebase 凭据制作了一个单独的 React 应用程序(不是 React 360),并且我能够成功写入我的 Firestore 数据库。
我的问题:
如何更改我的上述实现以使用 React 360 成功写入 Firestore?