Soy nuevo para reaccionar nativo, estoy tratando de eliminar un campo específico pero tengo un problema
Estoy tratando de eliminar cm0IF5KopLgxnJTUtfi403kJuMl2 en FriendList
Aquí está mi código:
export default function deletefriends(FriendsUID){ const friendremove = async() =>{ // get current users uid const Uid = firebase.auth().currentUser.uid // define the current users const currentUID = firebase.firestore().collection('users').where( "UID", "==", firebase.auth().currentUser.uid).get(); // add the other users uid to current users friendlist currentUID.then((querySnapshot) => {querySnapshot.forEach((doc) => {doc.ref.update( {FriendsList:FriendsUID.delete()}) }) }) }¿Cómo elimino el FriendsUID?
Debido a que está trabajando con un mapa de ID en lugar de una matriz, deberá cambiar su código a (partes no relacionadas omitidas):
(doc) => { const friendsListMap = doc.get('FriendsList'); delete friendsListMap[uidToDelete]; return doc.ref.update({ FriendsList: friendsListMap }); }o
(doc) => { return doc.ref.update({ [`FriendsList.${uidToDelete}`]: firebase.firestore.FieldValue.delete() }); } Debe actualizar su código para encadenar correctamente las Promesas (algunas son flotantes, use querySnapshot.docs.map y Promise.all ) y considere utilizar una transacción para realizar estos cambios para asegurarse de que los datos no se eliminen por error. .
Si está tratando de eliminar un solo elemento de la matriz FriendsList , necesita la operación arrayRemove . De la documentación sobre la actualización de elementos en una matriz :
await washingtonRef.update({ regions: arrayRemove("east_coast") });