我正在构建一个 Flutter 应用程序并且我已经集成了 Firebase,但是当我点击一个按钮来注册、登录或注销时,我不断收到这个错误。我见过其他人问过同样的问题,但似乎没有一个对我有用。我正在使用 Flutter 和Android Studio。我该如何解决这个问题?
这是我的代码的摘录
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.red,
body: Center(
child: Container(
child: RaisedButton(
onPressed: () {
FirebaseAuth.instance.signOut().then((value) {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) =>
LoginScreen()));
});
},
child: Text("Logout"),
)
)
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
下面是抛出的异常
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> { …Run Code Online (Sandbox Code Playgroud) 谷歌刚刚发布了Cloud Firestore,这是他们针对应用的新文档数据库.
我一直在阅读文档但我没有看到Firestore和Firebase DB之间存在很多差异.
重点是Firestore使用的文档和集合与Firebase相比,可以轻松使用查询,Firebase是一个带有JSON基础的传统noSQL数据库.
我想更多地了解他们的差异或用法,或者Firestore是否刚刚取代Firebase DB?
firebase google-cloud-platform firebase-realtime-database google-cloud-firestore
第一次使用 firestore 时出现此错误。根据我的研究,这似乎是 Ivy 的问题。我没有很多修改 tsconfig.app.json 的经验,这是我被指出的方向,遵循其他答案。
我能够从原始项目中修改的唯一一件事是使用 Angular Fire 6 而不是 5,这是我最初按照教程所做的。
这是 package.json:
{
"name": "language",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~9.0.1",
"@angular/cdk": "^9.0.0",
"@angular/common": "~9.0.1",
"@angular/compiler": "~9.0.1",
"@angular/core": "~9.0.1",
"@angular/fire": "^6.0.0-rc.1",
"@angular/flex-layout": "^9.0.0-beta.29",
"@angular/forms": "~9.0.1",
"@angular/material": "^9.0.0",
"@angular/platform-browser": "~9.0.1",
"@angular/platform-browser-dynamic": "~9.0.1",
"@angular/router": "~9.0.1",
"firebase": "^7.8.2",
"rxjs": "~6.5.4",
"rxjs-compat": "^6.5.4",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
},
"devDependencies": …Run Code Online (Sandbox Code Playgroud) 我正在探索新的Firebase Firestore,它包含一个名为的数据类型reference.我不清楚这是做什么的.
reference是实际参考,我可以将它用于查询吗?例如,我可以有一个直接指向用户的引用,而不是将userId存储在文本字段中吗?我可以使用此用户参考进行查询吗?是否可以使用新的firebase数据库firestore计算集合中有多少项?
如果是这样,我该怎么做?
我以为我读过您可以使用新的Firebase Firestore查询子集合,但我没有看到任何示例.例如,我通过以下方式设置了Firestore:
我怎样才能查询"查找songName =='X'的所有舞蹈"
我正在学习Angular寻找修复错误的帮助:我正在关注此链接:https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md 以创建一个角度带有angular2和angularfirestore2的小应用程序
但当我点击服务时,我在浏览器控制台中收到以下错误..
StaticInjectorError[AngularFirestore]:
StaticInjectorError[AngularFirestore]:
NullInjectorError: No provider for AngularFirestore!
at _NullInjector.get (core.js:923)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveNgModuleDep (core.js:10585)
at NgModuleRef_.get (core.js:11806)
at resolveDep (core.js:12302)
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索但没有找到确切的解决方案对我没用:(,
这是我遵循的:1)已安装的节点版本8.9.1 2)npm install -g @ angular/cli - > Version 1.5.2 3)ng new'project-name'4)npm install angularfire2 firebase --save
这是我的app.module.ts文件:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import …Run Code Online (Sandbox Code Playgroud) 我想添加一个简单的搜索字段,想使用类似的东西
collectionRef.where('name', 'contains', 'searchTerm')
我尝试过使用where('name', '==', '%searchTerm%'),但它没有返回任何东西.
在Cloud Firestore中,有三种写操作:
1)添加
2)设置
3)更新
在文档中,它表示使用set(object, {merge: true})将对象与现有对象合并.
当你使用时会发生同样的情况update(object)
那么有什么不同呢?谷歌会复制逻辑似乎很奇怪.
我正在尝试Firestore,而且我遇到了一些非常简单的事情:"更新一个数组(也就是一个子文档)".
我的DB结构非常简单.例如:
proprietary: "John Doe",
sharedWith:
[
{who: "first@test.com", when:timestamp},
{who: "another@test.com", when:timestamp},
],
Run Code Online (Sandbox Code Playgroud)
我正在尝试(没有成功)将新记录推送到shareWith对象数组中.
我试过了:
// With SET
firebase.firestore()
.collection('proprietary')
.doc(docID)
.set(
{ sharedWith: [{ who: "third@test.com", when: new Date() }] },
{ merge: true }
)
// With UPDATE
firebase.firestore()
.collection('proprietary')
.doc(docID)
.update({ sharedWith: [{ who: "third@test.com", when: new Date() }] })
Run Code Online (Sandbox Code Playgroud)
没有用.这些查询会覆盖我的数组.
答案可能很简单,但我找不到......
谢谢
firebase ×9
angular ×2
angularfire ×1
angularfire2 ×1
arrays ×1
dart ×1
database ×1
flutter ×1
javascript ×1
object ×1