繁体   English   中英

找不到支持 object 类型为“object”的“[object Object]”的差异。 NgFor 只支持绑定到 Iterables,比如 Arrays

[英]Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables, such as Arrays

我正在使用 firebase 和 angular 构建一个实时聊天应用程序。实际上,我正在尝试从数据库获取消息,但出现此错误:

找不到支持 object 类型为“object”的“[object Object]”的差异。 NgFor 只支持绑定到 Iterables,比如 Arrays。

服务

getMessage(url: string) {
    return this.http.get(url);
  }

逻辑

messages: any;

ngOnInit(): void {
this.chatService
      .getMessage('https://DB_URL/message.json')
      .subscribe((resMessage) => {
        this.messages = resMessage;
        console.log(this.messages);
      });
}

模板

<div *ngFor="let message of messages">
      <p>{{ message }}</p>
    </div>

我不知道如何解决它,我肯定遗漏了什么

我没有发布整个代码,因为帖子太长了

首先,将 messages 变量初始化为数组:

messages = [];

然后尝试从您从服务器获取的 object 推送消息密钥。

this.messages.push(resMessage.yourMessageKey);

firebase:无法分配给 object 的只读属性“displayName”'#<object> '<div id="text_translate"><p> 我在我的 ReactJS 项目上使用@reduxjs/toolkit: ^1.7.1 、 firebase: 9.6.1和 firebase firebase-tools: 10.0.1 。 我试图创建一个 function 用户可以在其中更新他们的姓名和头像照片。</p><p> 为此,我使用了updateProfile() function。 但是,每当我执行更新 function 时,它都会引发错误<strong>Cannot assign to read only property 'displayName' of object '#&lt;Object&gt;'</strong> 。</p><p> 我注意到一件有趣的事情是,如果我只更新 photoURL 属性,它仍然Cannot assign to read only property 'displayName' of object '#&lt;Object&gt;'</p><p> <a href="https://github.com/mdibuhossain/Front-end-ReactJS-with-Firebase-template" rel="nofollow noreferrer">Project_Link_Github</a></p><p> 代码: useFirebase.js : </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> import { getAuth, signInWithPopup, GoogleAuthProvider, createUserWithEmailAndPassword, signInWithEmailAndPassword, signOut, onAuthStateChanged, updateProfile } from 'firebase/auth'; import { getDownloadURL, getStorage, ref, uploadBytes } from 'firebase/storage'; import { useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useLocation, useNavigate } from 'react-router-dom'; import { setIsLoading } from '../features/isloadingSlice'; import { login, logout } from '../features/userSlice'; import initAuth from '../Firebase/initAuth'; initAuth(); export const useFirebase = () =&gt; { const auth = getAuth(); const location = useLocation(); const navigate = useNavigate(); const dispatch = useDispatch(); const [updateCount, setUpdateCount] = useState(0); const storage = getStorage(); const Redirect = () =&gt; { console.log(location); const destination = location?.state?.from?.pathname || '/'; navigate(destination); } const uploadAvatar = async (file) =&gt; { const fileRef = ref(storage, 'avatar/' + auth?.currentUser?.uid + '.png'); dispatch(setIsLoading(true)); const snapshot = await uploadBytes(fileRef, file); const photoURL = await getDownloadURL(fileRef); updateProfile(auth.currentUser, { photoURL }).then(() =&gt; { setUpdateCount(updateCount + 1); }).catch(e =&gt; console.log(e.message)) dispatch(setIsLoading(false)); console.log(snapshot); } const userRegister = (name, photoURL, email, password) =&gt; { dispatch(setIsLoading(true)); createUserWithEmailAndPassword(auth, email, password).then(result =&gt; { updateProfile(auth.currentUser, { displayName: name, photoURL }).then(() =&gt; { }) dispatch(login({ displayName: name, email, photoURL })); Redirect(); }).catch(error =&gt; alert(error.message)).finally(() =&gt; dispatch(setIsLoading(false))) } useEffect(() =&gt; { const unsubscribe = onAuthStateChanged(auth, (result) =&gt; { if (result) { dispatch(login({...result })) } else { dispatch(login({})) } dispatch(setIsLoading(false)); }) return () =&gt; unsubscribe; }, [updateCount, auth]) return { logIn, logOut, Redirect, uploadAvatar, userRegister, } }</pre></div></div><p></p><p> <a href="https://i.stack.imgur.com/6CJQm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6CJQm.png" alt="在此处输入图像描述"></a></p><p> 我不知道这个<strong>displayName</strong>属性有什么问题,但我以前的项目工作正常。</p><p> <strong>有人可以帮我吗?</strong></p></div></object>

[英]firebase: Cannot assign to read only property 'displayName' of object '#<Object>'

TypeError: 无法分配给 object 的只读属性 '#<object> ' Redux Tool Kit Slice for Firebase Storage REACT NATIVE<div id="text_translate"><p> 您好,我在上传到 firebase 存储后尝试设置我的 downloadUrl,但我似乎无法让它与 Redux 工具包一起使用。 我有一个解决方案,但我宁愿以正确的方式使用它,但我似乎无法弄清楚它是否愿意得到一些反馈</p><pre> incrementByAmount: (state, action) =&gt; { state.value += action.payload },</pre><p> 这是<strong>文档</strong>示例。 我知道数字与对象的工作方式不同,<strong>但如果他们可以像这样改变它,为什么我不能呢?</strong></p><pre> setImageUrl: (state, action: PayloadAction&lt;string&gt;) =&gt; { state.imageUrl = action.payload; },</pre><p> <strong>这就是我所说的</strong></p><pre> const downloadUrl = await FirebaseStorageService.uploadFile( photo, setUploadProgress ); dispatch(setImageUrl(downloadUrl));</pre><p> 这是错误</p><pre>ossible Unhandled Promise Rejection (id: 5): TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;' TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;'</pre><p> 提前谢谢你 我在其他地方看到过类似的问题,但我觉得答案不清楚。 我可以直接或不使用 RTK 更改 object 的属性吗?</p></div></object>

[英]TypeError: Cannot assign to read only property '' of object '#<Object>' Redux Tool Kit Slice for Firebase Storage REACT NATIVE

“对象”不能分配给参数类型“ImageProvider”<object> '<div id="text_translate"><p> 使用 Circle Avatar 时出现以下错误:</p><p> 无法将参数类型“Object”分配给参数类型“ImageProvider”</p><p> 这是代码:</p><pre> CircleAvatar( backgroundImage: snapshot.data['imageUrl'] == ""? AssetImage('assets/img.png'): NetworkImage(snapshot.data['imageUrl']));</pre><p><img src="https://i.stack.imgur.com/dXuId.png" alt="代码和错误的图片"></p></div></object>

[英]'Object' can't be assigned to the parameter type 'ImageProvider<Object>'

Firebase 功能:无法设置 # 的属性配置<object>只有一个吸气剂<div id="text_translate"><p> Firebase 功能运行良好我更新到最新的 firebase-tools 现在运行 firebase 服务时遇到此错误问题。</p><pre> [debug] [2020-05-28T20:37:11.387Z] [runtime-status] [93658] Error in handleMessage: => TypeError: Cannot set property config of #<Object> which has only a getter: TypeError: Cannot set property config of #<Object> which has only a getter at {....}/node/v10.15.0/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:455:19 at Generator.next (<anonymous>) at fulfilled ({....}/node/v10.15.0/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:5:58) [warn] ⚠ functions: Cannot set property config of #<Object> which has only a getter {"metadata":{"emulator":{"name":"functions"},"message":"Cannot set property config of #<Object> which has only a getter"}} [warn] ⚠ Your function was killed because it raised an unhandled error. {"metadata":{"emulator":{"name":"functions"},"message":"Your function was killed because it raised an unhandled error."}}</pre></div></object>

[英]Firebase functions : Cannot set property config of #<Object> which has only a getter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将 Object 与 arrays 转换为 arrays 与 arrays - *ngfor usage firebase:无法分配给 object 的只读属性“displayName”'#<object> '<div id="text_translate"><p> 我在我的 ReactJS 项目上使用@reduxjs/toolkit: ^1.7.1 、 firebase: 9.6.1和 firebase firebase-tools: 10.0.1 。 我试图创建一个 function 用户可以在其中更新他们的姓名和头像照片。</p><p> 为此,我使用了updateProfile() function。 但是,每当我执行更新 function 时,它都会引发错误<strong>Cannot assign to read only property 'displayName' of object '#&lt;Object&gt;'</strong> 。</p><p> 我注意到一件有趣的事情是,如果我只更新 photoURL 属性,它仍然Cannot assign to read only property 'displayName' of object '#&lt;Object&gt;'</p><p> <a href="https://github.com/mdibuhossain/Front-end-ReactJS-with-Firebase-template" rel="nofollow noreferrer">Project_Link_Github</a></p><p> 代码: useFirebase.js : </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> import { getAuth, signInWithPopup, GoogleAuthProvider, createUserWithEmailAndPassword, signInWithEmailAndPassword, signOut, onAuthStateChanged, updateProfile } from 'firebase/auth'; import { getDownloadURL, getStorage, ref, uploadBytes } from 'firebase/storage'; import { useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useLocation, useNavigate } from 'react-router-dom'; import { setIsLoading } from '../features/isloadingSlice'; import { login, logout } from '../features/userSlice'; import initAuth from '../Firebase/initAuth'; initAuth(); export const useFirebase = () =&gt; { const auth = getAuth(); const location = useLocation(); const navigate = useNavigate(); const dispatch = useDispatch(); const [updateCount, setUpdateCount] = useState(0); const storage = getStorage(); const Redirect = () =&gt; { console.log(location); const destination = location?.state?.from?.pathname || '/'; navigate(destination); } const uploadAvatar = async (file) =&gt; { const fileRef = ref(storage, 'avatar/' + auth?.currentUser?.uid + '.png'); dispatch(setIsLoading(true)); const snapshot = await uploadBytes(fileRef, file); const photoURL = await getDownloadURL(fileRef); updateProfile(auth.currentUser, { photoURL }).then(() =&gt; { setUpdateCount(updateCount + 1); }).catch(e =&gt; console.log(e.message)) dispatch(setIsLoading(false)); console.log(snapshot); } const userRegister = (name, photoURL, email, password) =&gt; { dispatch(setIsLoading(true)); createUserWithEmailAndPassword(auth, email, password).then(result =&gt; { updateProfile(auth.currentUser, { displayName: name, photoURL }).then(() =&gt; { }) dispatch(login({ displayName: name, email, photoURL })); Redirect(); }).catch(error =&gt; alert(error.message)).finally(() =&gt; dispatch(setIsLoading(false))) } useEffect(() =&gt; { const unsubscribe = onAuthStateChanged(auth, (result) =&gt; { if (result) { dispatch(login({...result })) } else { dispatch(login({})) } dispatch(setIsLoading(false)); }) return () =&gt; unsubscribe; }, [updateCount, auth]) return { logIn, logOut, Redirect, uploadAvatar, userRegister, } }</pre></div></div><p></p><p> <a href="https://i.stack.imgur.com/6CJQm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6CJQm.png" alt="在此处输入图像描述"></a></p><p> 我不知道这个<strong>displayName</strong>属性有什么问题,但我以前的项目工作正常。</p><p> <strong>有人可以帮我吗?</strong></p></div></object> TypeError: 无法分配给 object 的只读属性 '#<object> ' Redux Tool Kit Slice for Firebase Storage REACT NATIVE<div id="text_translate"><p> 您好,我在上传到 firebase 存储后尝试设置我的 downloadUrl,但我似乎无法让它与 Redux 工具包一起使用。 我有一个解决方案,但我宁愿以正确的方式使用它,但我似乎无法弄清楚它是否愿意得到一些反馈</p><pre> incrementByAmount: (state, action) =&gt; { state.value += action.payload },</pre><p> 这是<strong>文档</strong>示例。 我知道数字与对象的工作方式不同,<strong>但如果他们可以像这样改变它,为什么我不能呢?</strong></p><pre> setImageUrl: (state, action: PayloadAction&lt;string&gt;) =&gt; { state.imageUrl = action.payload; },</pre><p> <strong>这就是我所说的</strong></p><pre> const downloadUrl = await FirebaseStorageService.uploadFile( photo, setUploadProgress ); dispatch(setImageUrl(downloadUrl));</pre><p> 这是错误</p><pre>ossible Unhandled Promise Rejection (id: 5): TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;' TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;'</pre><p> 提前谢谢你 我在其他地方看到过类似的问题,但我觉得答案不清楚。 我可以直接或不使用 RTK 更改 object 的属性吗?</p></div></object> 扑动:输入'_InternalLinkedHashMap<object?, object?> ' 不是 'Map 类型的子类型<string, dynamic> '</string,></object?,> 我应该将 boolean 字段存储在 arrays 还是 object 中? InvalidFirebaseData',原因:'(setValue:) 无法在 profileUrl 存储类型为 NSURL 的 object “对象”不能分配给参数类型“ImageProvider”<object> '<div id="text_translate"><p> 使用 Circle Avatar 时出现以下错误:</p><p> 无法将参数类型“Object”分配给参数类型“ImageProvider”</p><p> 这是代码:</p><pre> CircleAvatar( backgroundImage: snapshot.data['imageUrl'] == ""? AssetImage('assets/img.png'): NetworkImage(snapshot.data['imageUrl']));</pre><p><img src="https://i.stack.imgur.com/dXuId.png" alt="代码和错误的图片"></p></div></object> × TypeError:无法解构'Object(...)(...)'的属性'currentUser',因为它是未定义的 Firebase 功能:无法设置 # 的属性配置<object>只有一个吸气剂<div id="text_translate"><p> Firebase 功能运行良好我更新到最新的 firebase-tools 现在运行 firebase 服务时遇到此错误问题。</p><pre> [debug] [2020-05-28T20:37:11.387Z] [runtime-status] [93658] Error in handleMessage: => TypeError: Cannot set property config of #<Object> which has only a getter: TypeError: Cannot set property config of #<Object> which has only a getter at {....}/node/v10.15.0/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:455:19 at Generator.next (<anonymous>) at fulfilled ({....}/node/v10.15.0/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:5:58) [warn] ⚠ functions: Cannot set property config of #<Object> which has only a getter {"metadata":{"emulator":{"name":"functions"},"message":"Cannot set property config of #<Object> which has only a getter"}} [warn] ⚠ Your function was killed because it raised an unhandled error. {"metadata":{"emulator":{"name":"functions"},"message":"Your function was killed because it raised an unhandled error."}}</pre></div></object> FirebaseError:预期类型“Ta”,但它是:一个自定义哦对象
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM