【发布时间】:2018-01-11 19:48:55
【问题描述】:
我有这个错误:
core.js:1440 ERROR Error: Uncaught (in promise): FirebaseError:
[code=invalid-argument]: Invalid document reference.
Document references must have an even number of segments, but users has 1
FirebaseError: Invalid document reference.
Document references must have an even number of segments, but users has 1
at new FirestoreError (error.js:149)
at Function.DocumentReference.forPath (database.js:436)
at Firestore.doc (database.js:245)
at AngularFirestore.doc (firestore.js:28)
at new Firebase (firebase.service.ts:25)
at _createClass (core.js:10877)
at _createProviderInstance$1 (core.js:10847)
at resolveNgModuleDep (core.js:10832)
at NgModuleRef_.get (core.js:12069)
at resolveDep (core.js:12559)
at new FirestoreError (error.js:149)
at Function.DocumentReference.forPath (database.js:436)
at Firestore.doc (database.js:245)
at AngularFirestore.doc (firestore.js:28)
at new Firebase (firebase.service.ts:25)
at _createClass (core.js:10877)
at _createProviderInstance$1 (core.js:10847)
at resolveNgModuleDep (core.js:10832)
at NgModuleRef_.get (core.js:12069)
at resolveDep (core.js:12559)
at resolvePromise (zone.js:821)
at resolvePromise (zone.js:785)
at eval (zone.js:870)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4724)
at ZoneDelegate.invokeTask (zone.js:420)
at Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:594)
at <anonymous>
这是我的函数:在 firebase.service.ts
async login() {
let u = await this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider())
console.log(u);
return this.getUserData(u.user.email);
}
public updateUser(UserName,phone)
{
this.userRef.doc(this.getEmail()).set({
UserName:UserName,
phone:phone,
});
this.router.navigate(["home"]);
}
在 login.component.ts 中:
login(){
this.firebaseService.updateUser(this.UserName,this.phone);
}
在login.component.html中:
<input type="text" [(ngModel)]="UserName" onsubmit="myFunction()" name="UserName" pattern="[A-Za-z]{}" placeholder="UserName">
<div id="UserName" style="color:transparent; display:none">
The user name is required.
</div>
<input type="number" [(ngModel)]="phone" name="phone" placeholder="Phone number">
<div id="PelephoneNumber" style="color:transparent; display:none">
The phone is required.
</div>
<button (click)=login() type="Submit" class="Submit" id="login-button">Login</button>
</form>
</div>
有什么帮助吗?
【问题讨论】:
标签: angular firebase google-cloud-firestore