각 사용자를 Firebase의 데이터에 연결하려면 어떻게 해야 합니까?
저는 사용자 이름으로 사용되는 다른 사용자 이름을 포함하는 사용자라는 이름의 메인 트리를 만들 계획입니다.따라서 각 사용자 이름에서 데이터가 포함됩니다.전체 이름, 주소, 전화 번호
각 사용자가 프로필에 로그인할 때 데이터를 가져오는 방법을 알고 싶습니다.
먼저 Firebase 가이드(이전 Firebase 가이드 링크)를 읽고 Firebase에 익숙해지는 데 시간을 할애할 것을 제안합니다.자신의 질문에 답하기 위해 알아야 할 모든 것을 그곳에서 이용할 수 있습니다.그러나 단순성을 위해 여기에 예를 들어 보겠습니다.
보안부터 시작하겠습니다. 이 예에 필요한 기본적인 방화벽 규칙은 다음과 같습니다. (출처:보안 이해)(이전 출처:보안 이해)
{
"rules": {
"users": {
"$user_id": {
".write": "$user_id === auth.uid"
}
}
}
}
실제 사용자 생성 및 로그인은 생략하고 사용자 데이터 저장 및 검색에 대한 질문에 집중하겠습니다.
데이터 저장: (소스:Firebase 인증)(이전 소스:사용자 인증)
// Get a reference to the database service
var database = firebase.database();
// save the user's profile into Firebase so we can list users,
// use them in Security and Firebase Rules, and show profiles
function writeUserData(userId, name, email, imageUrl) {
firebase.database().ref('users/' + userId).set({
username: name,
email: email
//some more user data
});
}
결과적인 화재 기반 데이터는 다음과 같습니다.
{
"users": {
"simplelogin:213": {
"username": "password",
"email": "bobtony"
},
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
},
"facebook:456": {
"username": "facebook",
"email": "James Tamplin"
}
}
}
마지막으로 데이터를 검색하는 방법은 여러 가지가 있지만, 이 예에서는 방화벽 기반 가이드의 간단한 예를 사용합니다. (소스: 데이터 읽기 및 쓰기) (이전 소스:데이터 검색 중)
//Get the current userID
var userId = firebase.auth().currentUser.uid;
//Get the user data
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
//Do something with your user data located in snapshot
});
EDIT: 반환 데이터 예제 추가
따라서 사용자 twitter:123으로 로그인하면 사용자 ID를 기반으로 위치에 대한 참조가 표시되고 다음 데이터가 표시됩니다.
"twitter:123": {
"username": "twitter",
"email": "Andrew Lee"
}
저는 좋은 보안을 위한 규칙을 설정하는 것에 대해 Andre의 의견에 동의하지만, 데이터를 조금 다르게 처리할 것입니다.문자열을 생성하는 대신 사용합니다.child()
방법.그것은 개인적인 취향의 문제입니다.
UID를 가져오고 데이터 개체를 정의합니다.
let user = firebase.auth().currentUser
let uid = user.uid
let yourdata = { foo: 'something', bar: 'other'}
데이터 저장:
firebase.database().ref('users').child(uid).set(yourdata)
.then((data) => {
console.log('Saved Data', data)
})
.catch((error) => {
console.log('Storing Error', error)
})
데이터 가져오기:
firebase.database().ref('users').child(uid).once('value')
.then((data) => {
let fetchedData = data.val()
console.log('Fetched Data', fetchedData)
})
.catch((error) => {
console.log('Fetching Error', error)
})
참고하시기 바랍니다.set()
데이터를 재정의하여 사용할 수 있습니다.push()
나중에
언급URL : https://stackoverflow.com/questions/30910704/how-do-i-link-each-user-to-their-data-in-firebase
'programing' 카테고리의 다른 글
Android 6.0(Mashmallow)에서 특정 앱에 대한 권한 화면을 프로그래밍 방식으로 열려면 어떻게 해야 합니까? (0) | 2023.06.28 |
---|---|
동일한 그래프에서 ggplot2를 사용하여 두 변수를 선으로 표시 (0) | 2023.06.28 |
코드 우선 마이그레이션을 사용하여 SQL 스크립트를 실행할 수 있습니까? (0) | 2023.06.23 |
C# "is" 키워드에 해당하는 VB.NET은 무엇입니까? (0) | 2023.06.23 |
Oracle SQL 개발자의 DB2 데이터베이스 (0) | 2023.06.23 |