嗨,我想先从firebase auth中获取一个变量名称globalNumber中的数字,该变量名称设置为firebase中的文档ID,然后使用它来检查文档ID是否存在。如果存在,则导航至某些页面,如我的代码所示,导航至其他页面。但是它可能无法正常工作,可能是由于未正确提取号码或其他问题。我检查了其他一些类似的问题,但对我不起作用。任何人都可以让我知道正确的代码
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:loginpage/AccountDetialsPage.dart';
import 'package:loginpage/Pricepage.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var globalNumber;
var firestore;
@override
void initState() {
// TODO: implement initState
super.initState();
getCurrentUser();
firestore = Firestore.instance;
}
getCurrentUser() async{
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseUser user = await _auth.currentUser();
globalNumber = user.phoneNumber;
}
@override
Widget build(BuildContext context) {
print(globalNumber);
return MaterialApp(
home: SafeArea(
child: Scaffold(
body: Container(
child: Center(child: (Text('Welcome '))),
),
bottomNavigationBar: Container(
height: 50,
child: RaisedButton(
color: Colors.red,
child: (Text('Next',style: TextStyle(color: Colors.white),)),
onPressed: () async{
final snapShot = await Firestore.instance.collection('users').document(globalNumber).get();
if (snapShot.exists){
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
Pricepage()
));
}
else{
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
AccountDetialsPage()
));
}
},
),
),
),
),
);
}
}
问题如何检查我指定的文件ID是否存在?
最佳答案
请尝试以下操作:
onPressed: () async{
final FirebaseUser user = await _auth.currentUser();
var globalNumb = user.phoneNumber;
final snapShot = await Firestore.instance.collection('users').document(globalNumb).get();
if (snapShot.exists){
//..
在onPressed
内部,检索当前用户phoneNumber
,然后使用exists
检查文档是否存在。
关于firebase - 我想检查我指定的文件ID是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63324525/