質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Q&A

解決済

1回答

648閲覧

【Vue x Firebase】投稿者のみメッセージを削除するアラートを表示させたいです

TMTN

総合スコア53

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

0グッド

0クリップ

投稿2021/05/13 05:29

編集2021/05/21 03:26

#投稿者のみメッセージを削除するアラートを表示させたいです

現在VueとFirebaseでポートフォリオを作成しており、投稿者のみ削除アラートを出るようにしたいです。

現在、「投稿は投稿者のみ削除出来る」ようにされているのですが、
投稿者以外でも削除アラートが出るようになってしまってます。

そこで以下のようにifを使って投稿した際に、投稿自体に投稿者が分かるようにuidを取得できるようにしているので

「現在のログイン中のユーザー(this.uid)と

const currentUser = firebase.auth().currentUser; this.uid = currentUser.uid;

「postsを参照して、投稿者の(this.list.uid)」

props: { list: { type: Object, }, index: { type: Number, },

イメージ説明

propsで受け取ったuidを使って投稿者と認識させています。

if文で互いのuidを認識させることはできたのですが、
なぜかアラートにてキャンセルをしても対象の投稿が消えてしまいます・・

if分の位置が誤っているのでしょうか・・

また、もし他に良い方法があれば教えていただけると幸いです。

よろしくお願い致します。

html

1<button class="hide-btn" @click="deletePost">×</button>

js

1deletePost() { 2 const currentUser = firebase.auth().currentUser; 3 this.uid = currentUser.uid; 4 5 if (this.list.uid == this.uid) { 6 firebase 7 .firestore() 8 .collection("posts") 9 .doc(this.list.id) 10 .delete(); 11 this.$swal({ 12 title: "内容確認", 13 text: "投稿を削除しますか?", 14 icon: "warning", 15 buttons: true, 16 dangerMode: true, 17 }) 18 .then(() => { 19 this.$swal("投稿を削除しました", { 20 icon: "success", 21 }); 22 this.$router.go({ 23 path: `/board/${this.$route.params.uid}`, 24 force: true, 25 }); 26 }) 27 .catch(() => { 28 this.$swal("キャンセルしました。"); 29 }); 30 } 31 }, 32 }, 33 },

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TMTN

2021/05/14 02:07

1T2R3M4様 ご指摘ありがとうございます。 対応済です。大変申し訳ございませんでした。
guest

回答1

0

自己解決

以下で実装できました。

deletePost() { const currentUser = firebase.auth().currentUser; this.uid = currentUser.uid; if (this.list.uid == this.uid) { this.$swal({ title: "内容確認", text: "投稿を削除しますか?", icon: "warning", buttons: true, dangerMode: true, }) .then(() => { firebase .firestore() .collection("posts") .doc(this.list.id) .delete(); this.$swal("投稿を削除しました", { icon: "success", }); }) .catch(() => { this.$swal("キャンセルしました。"); }); } },

投稿2021/05/22 15:46

TMTN

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問