Здесь я вызываю эту функцию с помощью номера телефона после того, как он завершит свою проверку, и эта функция добавляет свой номер, используя пользовательское утверждение, чтобы удовлетворить этому правилу безопасности базы данных файловой базы.
{
"rules": {
"Users": {
//".read": true,
//".write": "auth.token.phone == newData.val()",
//".read": "auth.uid != null",
//".write": "newData.child('Personal Details').child('phone').val() === auth.token.phone"
"$userNumber": {
"Personal Details": {
".read": "auth.uid != null",
".write": "auth.token.phone == $userNumber"
},
"Notifications": {
".read": "auth.token.phone === $userNumber",
".write": "auth.uid != null"
},
}
Обновление токена после этоговызов функции
FirebaseAuth.getInstance().getCurrentUser().getIdToken(true).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
@Override
public void onComplete(@NonNull Task<GetTokenResult> task) {
Log.d("firebaseFunctionCall", "onComplete: token refreshed");
checkUser();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
loadingBar.dismiss();
Log.d("firebaseFunctionCall", "onFailure: failed to refresh error: "+e.getMessage());
}
});
здесь я делаю, когда пользователь проверяет свой номер, тогда его номер телефона также добавляется в базу данных
Но я получаю Database Permission denied
ошибку.
userRef = FirebaseDatabase.getInstance().getReference().child("Users");
Если вам нужна дополнительная информация, пожалуйста, спросите меня. но, пожалуйста, помогите мне с этой проблемой.