[英]FireBase dispatch function doesn't save to realtime DB
我需要一些有關 realtimeDB 問題的幫助。我使用 NuxtJS 來存儲狀態並將狀態分派到 DB。 我的代碼在保存到數據庫方面工作正常。 每當我想編輯它時,我都會收到這個 400 BAD Request 錯誤。 當我手動嘗試使用 Firebase 實時數據庫更新信息時,會發生同樣的事情,我無法編輯帶有文本的行。
錯誤:
vendor.js:387 PUT https://xxxx.firebaseio.com/posts.json-MI-Jym0mdX5jNNP89UH.json?auth=BIGKEY 400 (Bad Request)
我的組件
<template>
<div class="admin-post-page">
<section class="update-form">
<AdminPostForm :post="loadedPost" @submit="onSubmitted" />
</section>
</div>
</template>
<script>
import AdminPostForm from "@/components/Admin/AdminPostForm";
export default {
layout: "admin",
middleware: ['check-auth', 'auth'],
components: {
AdminPostForm
},
asyncData(context) {
return context.app.$axios
.$get(
process.env.baseUrl + "/posts/" +
context.params.postId +
".json"
)
.then(data => {
return {
loadedPost: { ...data, id: context.params.postId }
};
})
.catch(e => context.error());
},
methods: {
onSubmitted(editedPost) {
this.$store.dispatch("editPost", editedPost).then(() => {
this.$router.push("/admin");
});
}
}
};
</script>
store的方法是:
editPost(vuexContext, editedPost) {
return this.$axios
.$put(
"https://XXXX.com/posts.json" +
editedPost.id +
".json?auth=" +
vuexContext.state.token,
editedPost
)
.then(res => {
vuexContext.commit("editPost", editedPost);
})
.catch(e => console.log(e));
}
我的規則是:
{
"rules": {
".read": true,
".write": true
}
}
如果你能幫助我了解為什么我不被允許,我會欠你很多!
謝謝!
您的 URL 包含兩個.json
擴展名,這將不起作用。 您應該只在您嘗試寫入/更新的 JSON 的完整路徑之后添加.json
:
this.$axios
.$put(
"https://XXXX.com/posts/" +
editedPost.id +
".json?auth=" +
vuexContext.state.token,
editedPost
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.