안녕하세요.
하프개발자 입니다.
이번에는 Firebase 데이터 삭제에 대해서 알아보도록 하겠습니다.
Part 1. 문서 삭제
필드를 삭제하기 위해선 DeleteAsync를 사용합니다.
전과 같이 수동으로 Testing2 컬렉션
과 Doc1, Doc2 문서
를 생성해주시고 필드
도 추가해주세요.
다음으로 코드도 추가해줄게요
코드를 실행시켜보면 Testing2 컬렉션
의 Doc1 문서
가 삭제되는것을 볼 수 있습니다.
1
2
3
4
5
6
|
void Delete_An_Entire_Document()
{
DocumentReference docref = db.Collection("Testing2").Document("Doc1");
docref.DeleteAsync();
MessageBox.Show("Done");
}
|
cs |
Part 2. 특정 필드 삭제
특정 필드를 삭제하기 위해서는 FieldValue.Delete
를 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
|
void Delete_A_Field_Within_A_Document()
{
DocumentReference docref = db.Collection("Testing2").Document("Doc2");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"age", FieldValue.Delete }
};
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
|
cs |
Part 3. 리스트의 필드 삭제
리스트의 필드 삭제를 위해서 Add_ListOfObjects 컬렉션
을 이용하도록 하겠습니다.
아래의 결과를 보면 FieldValue.Delete
를 이용해 필드가 삭제 되는것을 볼 수 있습니다.
1
2
3
4
5
6
7
8
9
10
|
void Delete_An_Element_Inside_A_List()
{
DocumentReference docref = db.Collection("Add_ListOfObjects").Document("myDoc");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"MyList.PhoneNumber", FieldValue.Delete }
};
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
|
cs |
Part 4. Array의 필드 삭제
Array의 필드 삭제를 위해서 Add_Array 컬렉션
을 이용하도록 하겠습니다.
Array의 필드 삭제는 FieldValue.ArrayReomve
를 사용합니다.
1
2
3
4
5
6
7
8
9
10
|
void Delete_An_Element_Inside_An_Array()
{
DocumentReference docref = db.Collection("Add_Aray").Document("myDoc");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"My Array", FieldValue.ArrayRemove(456, true) }
};
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
|
cs |
Part 5. 해당 컬렉션의 모든 문서 삭제
해당 컬렉션의 모든 문서 삭제를 위해서는 그동안 썼던 DocumentReference
가 아닌 CollectionReference
로 사용해야 합니다.
1
2
3
4
5
6
7
8
9
10
11
|
async void Delete_All_Documents_In_A_Collection()
{
CollectionReference collref = db.Collection("Testing2");
QuerySnapshot snap = await collref.GetSnapshotAsync();
foreach (DocumentSnapshot doc in snap.Documents)
{
await doc.Reference.DeleteAsync();
}
}
|
cs |
제가 준비한 내용은 여기까지 입니다.
그럼 CRUD 여기서 끝이 났군요
이 다음글 부터는 회원가입, 로그인 화면을 만들어서 Firebase와 연동을 하는것으로 마무리를 짓겠습니다.
감사합니다.
해당 코드는 저의 깃허브에서도 볼 수 있습니다.
전체 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Google.Cloud.Firestore;
namespace CsFirebaseBlog
{
public partial class Form1 : Form
{
FirestoreDb db;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Delete_An_Entire_Document();
}
private void button2_Click(object sender, EventArgs e)
{
Delete_A_Field_Within_A_Document();
}
private void button3_Click(object sender, EventArgs e)
{
Delete_An_Element_Inside_A_List();
}
private void button4_Click(object sender, EventArgs e)
{
Delete_An_Element_Inside_An_Array();
}
private void button5_Click(object sender, EventArgs e)
{
Delete_All_Documents_In_A_Collection();
}
private void Form1_Load(object sender, EventArgs e)
{
string path = AppDomain.CurrentDomain.BaseDirectory + @"cs-firebase-blog-firebase-adminsdk-18cwe-b5971a4787.json";
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", path);
db = FirestoreDb.Create("cs-firebase-blog");
}
void Delete_An_Entire_Document()
{
DocumentReference docref = db.Collection("Testing2").Document("Doc1");
docref.DeleteAsync();
MessageBox.Show("Done");
}
void Delete_A_Field_Within_A_Document()
{
DocumentReference docref = db.Collection("Testing2").Document("Doc2");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"age", FieldValue.Delete }
};
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
void Delete_An_Element_Inside_A_List()
{
DocumentReference docref = db.Collection("Add_ListOfObjects").Document("myDoc");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"MyList.PhoneNumber", FieldValue.Delete }
}; ;
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
void Delete_An_Element_Inside_An_Array()
{
DocumentReference docref = db.Collection("Add_Aray").Document("myDoc");
Dictionary<string, object> data = new Dictionary<string, object>()
{
{"My Array", FieldValue.ArrayRemove(456, true) }
};
docref.UpdateAsync(data);
MessageBox.Show("Done");
}
async void Delete_All_Documents_In_A_Collection()
{
CollectionReference collref = db.Collection("Testing2");
QuerySnapshot snap = await collref.GetSnapshotAsync();
foreach (DocumentSnapshot doc in snap.Documents)
{
await doc.Reference.DeleteAsync();
}
}
}
}
|
cs |
'C# > Firebase' 카테고리의 다른 글
C# : Firebase 사용하기 - 07 (Firebase 회원가입, 로그인) (0) | 2021.03.04 |
---|---|
C# : Firebase 사용하기 - 05 (Firebase 데이터 수정) (0) | 2021.01.02 |
C# : Firebase 사용하기 - 04 (Firebase 데이터 검색) (1) | 2021.01.02 |
C# : Firebase 사용하기 - 03 (Firebase 데이터 추가) (0) | 2021.01.01 |
C# : Firebase 사용하기 - 02 (Firebase 연동) (0) | 2021.01.01 |
댓글