2021. 10. 16. 20:21
FireBase
참고한곳
https://firebase.google.com/docs/database/security?hl=ko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase;
using Firebase.Database;
public class FireBaseDataBase : MonoBehaviour
{
DatabaseReference reference ;
public class User
{
public string username;
public string email;
public User(string username, string email)
{
this.username = username;
this.email = email;
}
}
public void WriteNewUser()
{
var auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
WriteNewUser(auth.CurrentUser.UserId, "test", "test@mail");//작동함
WriteNewUser(auth.CurrentUser.UserId, "test2", "test2@mail");//작동함
WriteNewUser("ABC"+(auth.CurrentUser.UserId).Substring("ABC".Length), "test2", "test2@mail");//작동함!!
}
private void WriteNewUser(string userId, string name, string email)
{
User user = new User(name, email);
string json = JsonUtility.ToJson(user);
reference.Child("users").Child(userId).SetRawJsonValueAsync(json);
}
// Start is called before the first frame update
void Start()
{
reference = FirebaseDatabase.DefaultInstance.RootReference;
}
// Update is called once per frame
void Update()
{
}
}
상기와 같은 코드가 있다
이걸 그냥 쑤셔넣게 되면
자기 계정이 아닌데도 마음대로 값을 쓰고 수정해댄다
당연하다 저 계층값이 유저 ID인지 지역별 구분인지 이름인지 컴퓨터는 알수 없기 때문
따라서 저 계층은 uid와 동일할때만 값을 추가할수 있게 해달라고 할 것이다
열어보면 이렇게 되어있을것이다
11월 2일까지만 쓸 수 있댄다.
규칙을 바꿔주자
{
"rules":
{
"users":
{
"$uid":
{
".write": "$uid === auth.uid",
".read": "$uid === auth.uid"
}
}
}
}
uid가 동일해야만 읽고 쓸 수 있게 수정했다
이제 DB에 들어와서 아무나 난동부릴 수 없게됐다 Good
테스트 했던 유저값들은 지워주자
기본적으로 .write 규칙이 미정의된 부분은 쓰기 불가능이니 rules에 대한 룰은 지정 안 해주어도 될것이다
'FireBase' 카테고리의 다른 글
자주 쓰는 파이어베이스 RTDB 코드 (0) | 2021.10.17 |
---|---|
파이어 베이스 오류모음 (0) | 2021.10.11 |
파이어 베이스가 내뱉는 각종 메세지들 처리 (0) | 2021.10.05 |