я пытаюсь получать сообщения от firebase и обновлять свой магазин redux, но, похоже, я что-то пропустил

# #reactjs #firebase #react-native #redux #react-redux

#реагирует на #огневая база #реагировать-родной #возвращение #реагировать-переделывать

Вопрос:

я использую react native и firebase v9 и redux , когда я пытаюсь получить данные (сообщения) из firebase firestore и обновить свой магазин redux, чтобы использовать его в своем компоненте сообщений, я получаю новое состояние redux, но с нулевым значением кажется, что я что-то пропустил

это мое сообщение, которое я возвращаю:

 lt;View style={styles.container}gt;  {firebaseMessages.map((fireMessage) =gt; (  lt;Textgt; this is our message{fireMessage.message}lt;/Textgt;  ))}           lt;View style={styles.inputField}gt;  lt;Text style={styles.label}gt;Email Adresselt;/Textgt;  lt;TextInput  style={styles.input}  onChangeText={onChangeMessage}  value={message.messageText}  textContentType="emailAddress"  placeholder="demo@demo.com"  placeholderTextColor={"grey"}  /gt;  lt;TouchableOpacity style={styles.button1} onPress={handleMessageSend}gt;  lt;Text style={styles.signup}gt;Sign Inlt;/Textgt;  lt;/TouchableOpacitygt;  lt;/Viewgt; lt;/Viewgt;  

и это моя функция handleMessageSend

 const dispatch = useDispatch(); const handleMessageSend = () =gt; {   dispatch(getMessages()); }  

и это моя функция GetMessages в файле моих действий

 export const getMessages = () =gt; {  const myActionMessages = onSnapshot(collection(db, "messages"),(snapshot)=gt;{  const myData = snapshot.docs.map((doc) =gt; doc.data())  console.log(myData)  });  return {  type: GET_MESSAGES,  payload: myActionMessages  } }  

и это мое сообщение.

 const initialState = {  messages: [  {  id:1,  message:"this is static",  username:'static user'  },   ]  };  export const messagesReducer = (state = initialState , action) =gt; {  switch (action.type) {  case GET_MESSAGES:  console.log("from reducer")  console.log("this is ",action.payload)  return{...state,  messages:[...state.messages,action.payload]  };  default:  return state;  }  };  

я уверен, что я не пропустил ни одного файла импорта или что-то в этом роде, но я думаю, что я неправильно его закодировал

Комментарии:

1. Вы ничего не возвращаете в своем onSnapshot заключении. Но это только первая проблема. Вам также придется смириться с тем фактом, что onSnapshot информация будет возвращаться так же синхронно -вы не сможете сразу вернуть из нее значение.