【问题标题】:Function addDoc() called with invalid data. Unsupported field value: undefined使用无效数据调用的函数 addDoc()。不支持的字段值:未定义
【发布时间】:2021-05-12 08:56:21
【问题描述】:

你好,我是 firebase 的新手,我正在创建一个 slack 克隆(聊天应用程序)我在聊天中添加数据时遇到错误这里是我在收集室中的 firebase 数据快照我在给定的 roomID 中有一个收集消息@ 987654321@ 这是我的聊天代码

import db from "./firebase";
import firebase from "./firebase";
import { useStateValue } from "./stateProvider";

function ChatMsg({ channelName, channelId }) {
  const [input, setInput] = useState("");
  const [{ user }] = useStateValue();
  const sendMessage = (e) => {
    
    e.preventDefault();
    if (channelId) {
      db.collection("rooms").doc(channelId).collection("messages").add({
        message: input,
        // timestamp: firebase.firestore.FieldValue.serverTimestamp(),
        user: user.displayName,
        userImage: user.photoURL
      });
      
      
    }
  };

  return (
    <div className="chatInput">
      <form>
        <input
          value={input}
          onChange={(e) => setInput(e.target.value)}
          placeholder={`Message # ${channelName}`}
        />
        <button type="submit" onClick={sendMessage}>
          SEND
        </button>
      </form>
    </div>
  );
}
export default ChatMsg;

这是我的错误

【问题讨论】:

    标签: reactjs firebase google-cloud-firestore


    【解决方案1】:
    • 可能是用户对象不包含 displayName 或 photoURL 值

    • 或 useStateValue() 正在返回空对象

    
      const sendMessage = async(e) => {
          e.preventDefault();
       
         try{
          const myState = await useStateValue();
          const user = myState.user || undefined
           
          if (user && channelId) {
             await db.collection("rooms").doc(channelId).collection("messages").add({
                message: input,
                timestamp: Date.now(),
                user: user.displayName || 'unknown user',
                userImage: user.photoURL || '',
                // uid: user.uid
    
             }); 
           } else {
              alert('user object is null')
           }
    
          } catch({message}){
             alert(message);
           }
       };
    
    

    【讨论】:

      猜你喜欢
      • 2022-10-23
      • 2021-12-26
      • 2021-10-05
      • 2023-01-04
      • 2019-03-08
      • 2020-06-13
      • 2021-09-26
      • 2019-12-07
      相关资源
      最近更新 更多