Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
Swift/Firebase: no se pueden enviar datos de solicitud en una función de nube de Firebase

Parece que no puedo enviar un identificador sobre un cuerpo de solicitud a Firebase desde una aplicación Swift iOS.

Mi código javascript funciona (lo probé en un generador de API):

 exports.numberOfVideos = functions.https.onRequest((request, response) => { var attributionID = request.body.data.attributionID || "No attributionID found."; functions.logger.info('[LOG]: request.body has a value of ' + JSON.stringify(request.body), {structuredData: true}); var db = admin.firestore(); db.collection("content").get().then(snapshot => { var total = 0; snapshot.forEach(doc => { if (doc.data().attributionID == attributionID) { total++; } // stuff = stuff.concat(newelement); }); response.send('{"data": {"attributionID": "' + attributionID + '", "numberOfContents": "' + total + '"}}'); return ""; }).catch(reason => { response.send(reason) }) });

Mi código Swift no puede ver para transmitir los datos:

 static func getContentCount(for obj: Object, completion: @escaping (_ count: Int?) -> Void) { let httpsCallable = functions.httpsCallable("numberOfVideos") // httpsCallable.setValue("application/json", forKey: "Content-Type") httpsCallable.call(["attributionID" : obj.id]) { result, error in if let error = error as NSError? { if error.domain == FunctionsErrorDomain { let code = FunctionsErrorCode(rawValue: error.code) let message = error.localizedDescription let details = error.userInfo[FunctionsErrorDetailsKey] print(error) } } if let response = result?.data as? [String: [String: Any]] { if let data = response["data"] { if let countAsAString = data["numberOfContents"] as? String { let count = Int(countAsAString) if count != nil { completion(count) } else { print("Data is valid but no count found: \(result?.data)") completion(nil) } } } } else { print("Data is invalid: \(result?.data)") completion(nil) } } }

Cuando funcionó desde un probador de API REST, aquí estaba el cuerpo:

 POST /numberOfVideos HTTP/1.1 Host: ***************** Content-Type: application/json Content-Length: 49 {"data":{"attributionID":"biNiaWVtmjUKoTQ1fTZu"}}

¡Cualquier ayuda sería apreciada!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Arreglado. Tuve que usar un NSDictionary, no un diccionario:

 NSDictionary(dictionary: ["attributionID" : obj.id])
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda