Ich benutze Python, um durch einen Firebase-DB zu gehen, um ein Array von Objekten zurückzugeben, wählen Sie dann eine zufällig und geben Sie ihre Werte zurück. Ich habe eine kleine Test-JSON-DB verwendet, die ich manuell erstellt und in Firebase importiert habe. Wenn ich dies tue, sind die untergeordneten Knoten der DB 0, 1, 2
etc ... Mit dem unten stehenden Code kann ich die Daten durchlaufen und mir die benötigten Daten holen.Wie durchschlinge ich UIDs in Firebase
Ich habe ein CMS erstellt, mit dem ich Daten direkt in Firebase eingeben kann (anstatt ein lokales JSON-Dokument zu importieren), indem ich die Methode push()
verwende.
Dementsprechend werden die untergeordneten Knoten verschleierten Zeitstempel, die wie folgt aussehen: K036VOR90fh8sd80, KO698fhs7Hf8sfds
etc ...
Jetzt, wenn ich versuche zu for-Schleife durch die Knoten, ich die folgende Fehlermeldung bei ln9
caption=....
:
TypeError: string indices must be integers
Ich nehme an, dass dies geschieht, weil die Kindknoten jetzt Zeichenfolgen sind. Da muss ich das CMS benutzen - wie schleife ich nun diese Knoten durch?
Code:
if 'Item' in intent['slots']:
chosen_item = intent['slots']['Item']['value']
result = firebase.get(chosen_item, None)
if result:
item_object = []
for item in result:
item_object.append(item)
random_item = (random.choice(item_object))
caption = random_item['caption']
audio_src = random_item['audioPath']
Hier ist eine Annäherung von dem, was die Firebase wie folgt aussieht:
{
"1001" : {
"-K036VOR90fh8sd80EQ" : {
"audioPath" : "https://s3.amazonaws.com/bucket-output/audio/audio_0_1001.mp3",
"caption" : "Record 0 from 1001"
},
"-KO698fhs7Hf8sfdsWJS" : {
"audioPath" : "https://s3.amazonaws.com/bucket-output/audio/audio_1_1001.mp3",
"caption" : "Record 1 from 1001"
}
},
"2001" : {
"-KOFsPBMKVtwHSOfiDJ" : {
"audioPath" : "https://s3.amazonaws.com/bucket-output/audio/audio_0_2001.mp3",
"caption" : "Record 0 from 2001"
},
"-KOFsQvwgF9icSIolU" : {
"audioPath" : "https://s3.amazonaws.com/bucket-output/audio/audio_1_2001.mp3",
"caption" : "Record 1 from 2001"
}
}
}
Können Sie einen Link zu der Python-Bibliothek hinzufügen, die Sie für den Zugriff auf Firebase verwenden? –
@FrankvanPuffelen Ja, es ist [Python-Firebase] (https://pypi.python.org/pypi/python-firebase/1.2) – SamYoungNY