firebase - 我想检查我指定的文件ID是否存在

标签 firebase flutter dart google-cloud-firestore

嗨,我想先从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/

相关文章:

Flutter使容器高度match_parent

dart - 什么相当于 Flutter 中的开玩笑快照测试?

unit-testing - 我如何在Dart中的then语句中进行测试

firebase - 可以在 main 中调用 firebase.initializeApp()

ios - Swift firebase 推送通知无法以零错误工作?

android - 更改 Firebase 包名称

ios - 如何清除使用 Firestore 作为其数据库的快速聊天应用程序的缓存?

tabs - Flutter tabview刷新问题

image - 容器内图像的抖动不透明度

firebase - 如何从Firebase flutter 播放音频文件?