我在我的web项目中尝试了flutter cloud firestore。
我在主频道上,在pubspec.yaml文件中使用以下版本。
cloud_firestore: ^0.13.5
Index.html文件:
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-firestore.js"></script>
<script>
// TODO: Replace the following with your app's Firebase project configuration.
// See: https://support.google.com/firebase/answer/7015592
var firebaseConfig = {
apiKey: "--apiKey--",
authDomain: "--authDomain--",
databaseURL: "--databaseURL--",
projectId: "--testapp--",
storageBucket: "--test.appspot.com--",
messagingSenderId: "--senderId--",
appId: "--appId--"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
在我的列表屏幕中,我获取的数据如下:
var reference = widget.firestore.collection('work');
print("reference : ${reference}");
try {
QuerySnapshot snapshot = await reference.getDocuments();
print("work snapshot : ${snapshot}");
} catch (error) {
print("work error : ${error}");
}
但是,在我的flutter web项目中,我在尝试从cloudfirestore获取数据时遇到了一个错误。
错误:
Expected a value of type 'JSObject<qc>', but got one of type 'NativeJavaScriptObject'
有人能提出一个变通的解决方案吗。
谢谢。
抛出错误的原因是,当reference.getDocuments()
返回不同的值类型时,您正试图分配QuerySnapshot
。要获取Collection中的文档,应使用get((方法。
CollectionReference reference = FirebaseFirestore.instance.collection('work');
QuerySnapshot snapshot = await reference.get();