0
votes

Extraire des données unique d'un dictionnaire en Firebase (avec pyrébase et flacon)

Je construis une page d'enregistrement rapide avec Firebase, PyreBase & Flack; J'ai réussi à créer un compte d'utilisateur et appuyez sur les données dans le dossier Business; J'ai également créé un identifiant où l'utilisateur est connecté à une page de profil - pour afficher son nom et leur nom d'entreprise.

Mon seul problème est que je ne peux pas extraire les données simples, mais cela affiche plutôt les données comme un seul bloquer; Cela me rend difficile pour moi de trouver un moyen d'extraire uniquement le nom businessname ou uniquement le nom d'utilisateur à partir de la inscrit liste . < p> Je veux aussi seulement que les informations affichent uniquement l'utilisateur qui a signé - je pense avoir besoin d'utiliser un type d'utilisateur [idtense] Je ne suis pas sûr .. à la place je reçois le tout Liste (Je sais que l'utilisation d'une boucle pour boucle ne vous aide pas!)

enregistrement.py xxx

nouveau.html Xxx

profil.html xxx

Comment puis-je afficher uniquement le nom de l'utilisateur ou juste leur nom d'entreprise? Je pensais peut-être que les données [nom d'utilisateur] ou data [botternomame] , mais cela n'a pas fonctionné! Je veux pouvoir prendre les données séparément afin que je puisse contrôler où j'affiche les données. Les données affichées ne doivent être de l'utilisateur que qui s'est connectée. Ensuite, je peux ensuite ajouter des fonctionnalités dans lesquelles les utilisateurs peuvent modifier leurs informations.


4 commentaires

Toutes les chances que vous puissiez fournir ces informations: (1) la sortie de impression (utilisateur) (2) impression (enregistrement) (3) Imprimer (inscrivez-vous) à partir de l'intérieur du bloc d'essai dans votre méthode de connexion juste avant cette ligne retour Render_template ('Profile.html', inscritlist = inscrit liste)


J'ai essayé impression (registre) sur mon inactif et récupéré


J'ai aussi essayé imprimer (utilisateur) et j'ai récupéré un grand dictionnaire dans son email, localID, idtenbok, etc ... j'imprimerais ce que je suis revenu mais c'est trop grand


J'ai aussi essayé impression (inscrivez-vous) et récupéré ordonnéDict ([(('- MBVXA_L1VBtzjnrjpmf', {'Businessname': 'Bondrobotics', 'Nom d'utilisateur': 'Sinclair Akoto'}), ( '-Mbvy-lnwphkgrrk3rfb', {'Businessname': '619 Vente de mouche', 'Nom d'utilisateur': 'Richie'})])


3 Réponses :


0
votes

dans votre fonction de registre Essayez ceci: xxx pré>

puis dans votre fonction de connexion, essayez ceci: p> xxx pré>

créer un nouvel utilisateur après votre ont rendu les modifications ci-dessus puis vous connectez à ce nouvel utilisateur. Ajoutez un commentaire sur ce que la nouvelle impression (inscrivez-vous) vous donne. P>

laissez-moi savoir si cela fonctionne si cela fonctionne si cela fonctionne ?! p>

Espérons que les changements de requête ci-dessus feraient est de créer une clé identifiable ci-dessus. avant de pousser sur Firebase pendant le registre. Puis interrogeant pour cette clé unique et la valeur de cette clé pendant la connexion entraînera une seule donnée utilisateur. P>

Un peu d'explication de ce que je pense se produit: p>

('-MBVxA_L1VbTzjnRjpmf', {'businessName': 'BondRobotics', 'userName': 'Sinclair Akoto'})


2 commentaires

Merci de votre aide! J'ai réussi à trouver ce que je cherchais, mais je suis toujours bloqué .. Pour obtenir uniquement les données pour Nom d'utilisateur ou nom d'affaires , j'ai suivi vos étapes recommandées, puis Je viens de mettre enregistrylist.get ('firebase_autogenéréated_key') dans une variable a ensuite utilisé cette variable pour référencer la clé de dictionnaire que je veux la valeur de .. b = regiscriptionList.get ('- MBVY- Lnwphkgrrk3rfb ') puis impression (B [' Nom d'utilisateur ']) ou Imprimer (B ["Businessname'])


Cela m'a donné les données que je voulais - j'ai juste besoin de le transmettre dans mon projet de fiole pour tester et double vérifier comme je l'ai compris sur mon inactif .. ma prochaine question est si la clé '- MBVXA_L1VBTZJNRJPMF' est autogogénéré, comment pourrais-je vous référer automatiquement que lors de la création d'une page - donc je n'ai pas à référencer la clé Firebase? Seriez-vous capable d'aider ou de partager une certaine lumière dans la façon dont je pourrais faire ce travail? Je pensais que si cela est stocké dans la collection d'entreprises, je ne peux pas simplement faire référence à la collection d'entreprises avec l'utilisateur [idtense] ?



0
votes

Avec l'aide du commentaire précédent, j'ai réussi à trouver un moyen d'implémenter le même processus sur une page Web du flacon.

@app.route('/', methods=['GET', 'POST'])
def login():
    unsuccessful = 'Please check your credentials'
    successful = 'Login successful'
    if request.method == 'POST':
        email = request.form.get('name')
        password = request.form.get('pass')
        try:
            user = auth.sign_in_with_email_and_password(email, password)
            registerList = db.child("Bame_Register").child("business").get(user['idToken']).val()
            data = registerList.get('-MBZJcfqbGhiOghMJEX5')
            usrNme = data['userName']
            bus = data['businessName']
            return render_template('profile.html', usrNme=usrNme, bus=bus)
        except:
            return render_template('new.html', us=unsuccessful)
    return render_template('new.html')


0 commentaires

0
votes

J'ai eu le même problème, mais j'ai pu comprendre un correctif de ce Réponse ci-dessus et autre post relié ici: extraire des données de CommandedDict

Je vais fournir un mélange de mon code et des autres J'ai référencé. P>

premier fort>, suivez les étapes de @ Akib ci-dessus. Je vais les poster pour la commodité. P>

"Dans votre fonction de registre Essayez ceci:" p> xxx pré>

"puis dans votre fonction de connexion, essayez ceci:" P>

Sinclair Akoto


0 commentaires