如何解决仅在已部署的版本上无法到达Cloud Firestore后端
该项目是使用Vercel部署的-作为该过程的一部分,我在Firecel仪表板上添加了Firebase安全性/项目详细信息作为环境变量。
身份验证在部署后可以正常工作,但这是控制台中的错误:
@ firebase / firestore:Firestore(7.17.2):无法访问云 Firestore后端。连接失败1次。最近的错误: FirebaseError:[code = invalid-argument]:项目ID“ my-project-id”为 格式错误:它包含无效字符或太长。看 在 https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects 有关如何获取项目ID的说明。这通常 表示您的设备没有正常的Internet连接 在这一刻。客户端将一直以离线模式运行,直到 能够成功连接到后端。
我在package.json中的依赖项:
"dependencies": {
"@material-ui/core": "^4.11.0","@material-ui/icons": "^4.9.1","firebase": "^7.15.5","firebase-admin": "^8.12.1","js-cookie": "2.2.1","next": "latest","react": "^16.13.1","react-dom": "^16.13.1","react-firebaseui": "4.1.0","swr": "0.2.3"
我不确定代码的哪些部分最有用。以下是当前在本地运行的代码片段,但在部署时不起作用。
(在表单上提交处理)
const handleSubmit = (e) => {
e.preventDefault();
if (validate()) var user = firebase.auth().currentUser;
var db = firebase.firestore();
db.collection("users")
.doc(user.uid)
.collection("clients")
.doc()
.set({
name: values.fullName,email: values.email,tel: values.mobile,postcode: values.postcode,})
.then(function () {
console.log("Document Succesfully Written");
})
.catch(function (error) {
console.error("Error writing document: ",error);
});
};
(查看客户端文档列表)
const Clients = () => {
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
const db = firebase.firestore();
db.collection("users")
.doc(user.uid)
.collection("clients")
.onSnapshot((snap) => {
const clients = snap.docs.map((doc) => ({
id: doc.id,...doc.data(),}));
setClients(clients);
});
} else {
[];
}
});
const [clients,setClients] = useState([]);
return (
<div>
<ul>
{clients.map((client) => (
<li key={client.id}>{client.name}</li>
))}
</ul>
</div>
);
};
export default Clients;
解决方法
我认为这个错误值得一个更好的答案-因为我仍然不太确定为什么会这样。我删除并替换了Vercel仪表板中的环境变量,但未更改其内容。我重新部署后不再出现错误-读/写正确进行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。