firebase / firebase/firebase-admin-node

Firestore Bytes serializing not working on admin SDK[Firestore]

Abierto
#2,476 1 comentario 0 reacciones 0 asignados Ver en GitHub
api: firestore
Lenguaje dominante
TypeScript
Estrellas
1.7k
Forks
419
Merge medio
3 d 10 h
PR fusionados (30 d)
16

Descripción

* Operating System version:w10
* Firebase SDK version: 13.1
* Firebase Product: Firestore
* Node.js version: 20.11
* NPM version: 10.3

When trying to store uint8array as Firestore.Bytes from admin-sdk throw a serializing error:

`Error: Value for argument "data" is not a valid Firestore document. Couldn't serialize object of type "Bytes" (found in field "binaryData"). Firestore doesn't support JavaScript objects with custom prototypes (i.e. objects that were created via the "new" operator).`

Uint8array seems to be the way to go, but then mismatch Web SDK (web sdk return bytes array as Firestore.Bytes objects).

#### Steps to reproduce:

```
import { Bytes } from "firebase/firestore";

const bin = new Uint8Array([0x48, 0x65, 0x6C, 0x6C, 0x6F]);

const fsBytes = Bytes.fromUint8Array(bin);

db.collection('your_collection').doc('your_document').set({
binaryData: fsBytes
});
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con la reproducción de Node.js proporcionada usando Firebase SDK 13.1, Node.js 20.11 y el Admin SDK, centrándote en el límite de serialización de los documentos de Firestore. No se nombra ningún archivo del repositorio ni ninguna prueba; se considera terminado determinar si las representaciones Bytes/Uint8Array pueden almacenarse de forma consistente y cubrir el comportamiento confirmado con una prueba de regresión.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
node.js, typescript
Área
database
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.