by Guest » 16 Jan 2025, 06:43
Ich versuche, mithilfe der Kotlin-Bibliothek die neuesten Scandaten für eine bestimmte Benutzer-ID aus meiner Supabase-Tabelle abzurufen. Die Abfrage gibt jedoch eine leere Liste zurück, obwohl dieselbe SQL-Abfrage im Supabase SQL-Editor einwandfrei funktioniert.
Hier ist der Kotlin-Code, den ich verwende:
Code: Select all
val userId = ""
val latestScanData = withContext(Dispatchers.IO) {
supabase.from("Table_User_Scans")
.select() {
filter {
eq("user_id", userId)
}
order(column = "ScanTimeStamp", order = Order.DESCENDING)
limit(count = 1)
}
.decodeSingle()
}
Das Tabellenschema in Supabase lautet wie folgt:
Name
Beschreibung
Datentyp
Keine Beschreibung
Keine Beschreibung
Keine Beschreibung
Keine Beschreibung
Keine Beschreibung
Keine Beschreibung
Hier sind die UserScans Datenklasse in Kotlin:
Code: Select all
package com.indiedev91.looksmaxeai_bebetterversion.Utils
import kotlinx.serialization.Serializable
@Serializable
data class UserScans(
val user_id: String,
val UserName: String,
val ScanTimeStamp: String,
val FrontFaceImageUrl: String,
val SideFaceImageUrl: String,
val ApiJsonOutput: String?
)
Wenn ich die Abfrage direkt im Supabase SQL-Editor ausführe, funktioniert sie wie erwartet und gibt den neuesten Scan-Datensatz zurück:
Code: Select all
SELECT *
FROM "Table_User_Scans"
WHERE user_id = ''
ORDER BY "ScanTimeStamp" DESC
LIMIT 1;
Ich vermute, dass das Problem in der Art und Weise liegt, wie die Kotlin-Abfrage strukturiert ist. Folgendes habe ich bisher überprüft:
- Spaltenbenennung: Es wurde sichergestellt, dass die in der Datenbank verwendeten Spaltennamen () stimmen mit denen in der Kotlin-Abfrage überein.
- Datendekodierung: Es wurde überprüft, ob die UserScans-Klasse mit dem Tabellenschema übereinstimmt.
Supabase Kotlin-Dokumentation: Ich habe die Richtlinien aus der Supabase Kotlin-Dokumentation befolgt.
Trotzdem prüft, gibt die Abfrage immer noch eine leere Liste zurück.
Kann jemand darauf hinweisen, was ich möglicherweise falsch mache, oder Debugging-Schritte vorschlagen?
Vielen Dank im Voraus!
Ich versuche, mithilfe der Kotlin-Bibliothek die neuesten Scandaten für eine bestimmte Benutzer-ID aus meiner Supabase-Tabelle abzurufen. Die Abfrage gibt jedoch eine leere Liste zurück, obwohl dieselbe SQL-Abfrage im Supabase SQL-Editor einwandfrei funktioniert.
Hier ist der Kotlin-Code, den ich verwende:
[code]val userId = ""
val latestScanData = withContext(Dispatchers.IO) {
supabase.from("Table_User_Scans")
.select() {
filter {
eq("user_id", userId)
}
order(column = "ScanTimeStamp", order = Order.DESCENDING)
limit(count = 1)
}
.decodeSingle()
}
[/code]
Das Tabellenschema in Supabase lautet wie folgt:
[b]Name[/b]
[b]Beschreibung[/b]
[b]Datentyp[/b]
[code]user_id[/code]
Keine Beschreibung
[code]uuid[/code]
[code]UserName[/code]
Keine Beschreibung
[code]character varying[/code]
[code]ScanTimeStamp[/code]
Keine Beschreibung
[code]timestamp without time zone[/code]
[code]FrontFaceImageUrl[/code]
Keine Beschreibung
[code]character varying[/code]
[code]SideFaceImageUrl[/code]
Keine Beschreibung
[code]character varying[/code]
[code]ApiJsonOutput[/code]
Keine Beschreibung
[code]json[/code]
Hier sind die UserScans Datenklasse in Kotlin:
[code]package com.indiedev91.looksmaxeai_bebetterversion.Utils
import kotlinx.serialization.Serializable
@Serializable
data class UserScans(
val user_id: String,
val UserName: String,
val ScanTimeStamp: String,
val FrontFaceImageUrl: String,
val SideFaceImageUrl: String,
val ApiJsonOutput: String?
)
[/code]
Wenn ich die Abfrage direkt im Supabase SQL-Editor ausführe, funktioniert sie wie erwartet und gibt den neuesten Scan-Datensatz zurück:
[code]SELECT *
FROM "Table_User_Scans"
WHERE user_id = ''
ORDER BY "ScanTimeStamp" DESC
LIMIT 1;
[/code]
Ich vermute, dass das Problem in der Art und Weise liegt, wie die Kotlin-Abfrage strukturiert ist. Folgendes habe ich bisher überprüft:
[list]
[*][b]Spaltenbenennung[/b]: Es wurde sichergestellt, dass die in der Datenbank verwendeten Spaltennamen ([code]ScanTimeStamp[/code]) stimmen mit denen in der Kotlin-Abfrage überein.
[*][b]Datendekodierung[/b]: Es wurde überprüft, ob die UserScans-Klasse mit dem Tabellenschema übereinstimmt.
[b]Supabase Kotlin-Dokumentation[/b]: Ich habe die Richtlinien aus der Supabase Kotlin-Dokumentation befolgt.
[/list]
Trotzdem prüft, gibt die Abfrage immer noch eine leere Liste zurück.
Kann jemand darauf hinweisen, was ich möglicherweise falsch mache, oder Debugging-Schritte vorschlagen?
Vielen Dank im Voraus!