Y a-t-il un moyen de vérifier les valeurs à l'aide de règles initialement définies sur la création d'utilisateurs?
J'ai parcouru les documents Firebase en vain. P>
Lorsque la fonction CreateUserwithemailApassword code> est appelée, je crée ensuite certaines valeurs dans la base de données, par exemple: p>
"users": {
"ht35resf435dwe3rfdw": {
"is_premium": false,
"display_name" "John",
"last_login": 15353723826
}
}
3 Réponses :
Je viens de commencer à utiliser Firebase afin que je ne puisse pas fournir beaucoup d'informations. Si vous voulez commencer à apprendre, il y a un superbe Série Vous pouvez regarder. De plus, je suggérerais d'utiliser Cloud Fireestore au lieu de la base de données en temps réel car l'échelle est plus ancienne et comporte moins de fonctionnalités. Changer les règles de sécurité de votre base de données vous permettra de vous guider avec lesquels les utilisateurs peuvent modifier des données. Ce que vous devez faire, c'est rendre la valeur par défaut premium à FALSE ou même n'exister pas dans la base de données, puis créer une fonction JavaScript pour la créer ou la modifier en true dans la base de données. P>
EDIT: P>
Ajith Naruto fonctionnerait, mais il refuserait également toutes les écritures à la base de données de l'application Web. P>
EDIT 2: P>
Frank van Puffelen's devrait travailler, je sortirais de sa réponse. P>
Vous pouvez simplement modifier les règles de sécurité ci-dessous afin que l'utilisateur ne puisse pas apporter des modifications.
{ "rules": { "foo": { ".read": true, ".write": false } } }
Pour autoriser uniquement une valeur à définir sur ce qui précède n'autorise que FALSE code>, vous pouvez utiliser une règle de validation:
false < / code> à écrire par n'importe quel client. Lorsque vous écrivez à l'aide d'un SDK administrateur, ceux-ci écrit contourner ces règles de sécurité. Vous pouvez donc utiliser l'administrateur SDK pour marquer les utilisateurs Premium. P> P>
Ah! Merci. C'est ce que je ne comprenais pas. J'ai supposé que si je l'ai mis sur false et je l'ai fait toujours faux, je ne pourrais pas le modifier plus tard.
Le problème principal est toujours qui "i" est dans ce scénario. Qui est de confiance et qui n'est pas. Il est très facile de permettre que la valeur initiale soit fausse, mais si vous autorisez l'utilisateur à y retourner et de le changer, vous n'avez rien gagné. Je réalise maintenant BTW que l'utilisateur ne pourra pas écrire son nœud d'utilisateur une fois que vous avez changé is_premium code> sur
true code>. Si vous souhaitez supporter un cas d'utilisation, vous devrez avoir des nœuds de haut niveau distincts pour les données que l'utilisateur peut modifier, et les données qu'ils ne peuvent pas. Voir Stackoverflow.com/q/38648669
Est-ce pour la base de données en temps réel ou le cloud Firestore?
Base de données @Dougstevenson.