我在Swift有这个模型 import SwiftUI
import FirebaseFirestoreSwift
import FirebaseFirestore
struct Tweet: Codable, Identifiable, Hashable {
var id: UUID = UUID()
var content: String
var ownerId: String
var owner: UserProfile
var likes: Int
@ServerTimestamp var createdAt: Ti
我一直试图将从Firebase的Cloud中检索的文档转换为Swift 5中的一个自定义对象。
但是,Xcode显示了行Value of type 'NSObject' has no member 'data'的错误try $0.data(as: JStoreUser.self)。我已经将结构定义为Codable。
守则:
func getJStoreUserFromDB() {
db = Firestore.firestore()
let user = Auth.auth().currentUser
db.collection(
有没有办法创建自定义Swift对象,将Firebase文档ID分配给对象参数? 代码摘自此处:https://firebase.google.com/docs/firestore/query-data/get-data#custom_objects public struct City: Codable {
let id: String // here I'd like to fill in the Document ID
let name: String?
let state: String?
let country: String?
let
我正在使用codable并尝试从JSON响应中获取data。在这里,我不能使用swift 4.2将特定值打印到viewDidload中,我使用的是search,但我想将filteredData的名称指定为values。
我的代码
struct Root: Codable {
let status: Int
let message: String
let country: [Country]
let cost: Double
let data: [Datum]
}
struct Country: Codable {
let id: Int
struct Results: Codable {
let code: Int
let status: String
let data: DataClass
}
struct DataClass: Codable {
let surahs: [Surah]
let edition: Edition
}
struct Edition: Codable {
let identifier, language, name, englishName: String
let format, type: String
}
struct Surah: Codable, Identifiable{
var
我使用一个类来解码检索到的firestore文档,如果我不想操作数据,它就会按预期工作: class Room: Identifiable, Codable {
@DocumentID public var id:String?
var name:String
} 但是,如果我尝试使用自己的init来设置值,我无法获得firestore文档ID? class Room: Identifiable, Codable {
@DocumentID public var id:String?
var name:String
enum
我有一个json文件:
这个代码是:
var ProductsObjectArray = [Products]()
let data = try Data(contentsOf: path)
let decoder = JSONDecoder()
let ProductsObjectArray = try decoder.decode(Products.self, from: data)
和模型:
struct ProductObject : Codable {
let palletHeight : Double?
let layerPallet : Int?
let
因为这个我睡不着觉。刚开始重新编程,我不能理解这一点。 我试图将我的文档映射到"Shop“对象中,但如何检索小时字段并将其转换为字符串:Any。 错误:类型“”Shop“”不符合协议“”Decodable“”错误:类型“”Shop“”不符合协议“”Encodable“” Shop.swift struct Shop: Codable, Identifiable {
@DocumentID var id: String?
var image: String
var name: String
var adress: [String:String]?
var open
如何通过Swift中的id在Firestore中获取对象?然后,我需要使用这个对象在UI中生成内容。我正在使用SwiftUI。我试图获取的对象是一个用户,它的结构如下:
struct AppUser: Codable {
var id: String
var displayName: String
var photoURL: String
var points: Int
var knownLanguageCodes: Set<String>
}
"users“集合中的每个文档都有AppUser结构中的字段。理想情况下,我会编写一个
我有以下一般结构,其中data可以是任何其他可编码对象
struct GeneralResponse<T:Codable>: Codable {
let message: String
let status: Bool
let data: T?
enum CodingKeys: String, CodingKey {
case message = "Message"
case status = "Status"
case data = "Data"
我试图在SWIFT5.7中创建一个带有Codable结构的[any Protocol]结构
struct Account: Codable {
var id: String
var name: String
var wallets: [any Wallet]
}
protocol Wallet: Codable {
var id: String { get set }
//... other codable properties
}
然而,即使Wallet符合Codable,我也会得到这些错误
类型‘帐户’不符合协议‘可解码’类型‘帐户’不符合协议‘可
我使用的是Xcode 10.1和Swift 4.2。当我尝试将JSON响应转换为可编码的类时,它给出了一个错误,即Expected to decode Array<Any> but found a string/data instead.
我实际的JSON响应如下所示。
{
"d": "[{\"Data\":{\"mcustomer\":[{\"slno\":1000000040.0,\"fstname\":null}]},\"Status\":true}]"
}