Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颤振与振动;Firebase-如何仅允许每个设备使用一个帐户_Firebase_Flutter_Dart_Google Cloud Firestore_Firebase Authentication - Fatal编程技术网

颤振与振动;Firebase-如何仅允许每个设备使用一个帐户

颤振与振动;Firebase-如何仅允许每个设备使用一个帐户,firebase,flutter,dart,google-cloud-firestore,firebase-authentication,Firebase,Flutter,Dart,Google Cloud Firestore,Firebase Authentication,我尝试只允许用户在设备上创建一个帐户,因此当用户创建帐户并注销时,然后尝试创建一个新帐户它不会创建帐户,并说此设备已经有帐户。到目前为止,我已经获得了设备id,但我不知道现在要做什么。我要做的是使用唯一的设备id,并在firestore中在用户集合中创建一个文档,其文档id为设备id,然后,要验证该id是否已经存在,需要使用以下代码 FirebaseFirestore.instance .collection('users') .doc(idDevice) .get()

我尝试只允许用户在设备上创建一个帐户,因此当用户创建帐户并注销时,然后尝试创建一个新帐户它不会创建帐户,并说此设备已经有帐户。到目前为止,我已经获得了设备id,但我不知道现在要做什么。

我要做的是使用唯一的设备id,并在firestore中在用户集合中创建一个文档,其文档id为设备id,然后,要验证该id是否已经存在,需要使用以下代码

FirebaseFirestore.instance
    .collection('users')
    .doc(idDevice)
    .get()
    .then((DocumentSnapshot documentSnapshot) {
      if (documentSnapshot.exists) {
        print('Document data: ${documentSnapshot.data()}');
      } else {
        print('Document does not exist on the database');
      }
    });

我要做的是使用唯一的设备id,并在firestore中在用户集合中创建一个文档,其文档id为设备id,然后使用以下代码验证该id是否已存在

FirebaseFirestore.instance
    .collection('users')
    .doc(idDevice)
    .get()
    .then((DocumentSnapshot documentSnapshot) {
      if (documentSnapshot.exists) {
        print('Document data: ${documentSnapshot.data()}');
      } else {
        print('Document does not exist on the database');
      }
    });

在数据库中创建一个表,其中组合的列:userid(来自新帐户)和deviceid是唯一的。 使用设备信息包获取唯一的设备id

Future<String> getDeviceId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) {
    var iosInfo= await deviceInfo.iosInfo;
    return iosInfo.identifierForVendor; // on iOS
  } else {
    var androidInfo = await deviceInfo.androidInfo;
    return androidInfo.androidId; // on Android
  }
}
方法获取设备id

Future<String> getDeviceId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) {
    var iosInfo= await deviceInfo.iosInfo;
    return iosInfo.identifierForVendor; // on iOS
  } else {
    var androidInfo = await deviceInfo.androidInfo;
    return androidInfo.androidId; // on Android
  }
}
Future getDeviceId()异步{
var deviceInfo=deviceInfo插件();
if(Platform.isIOS){
var iosInfo=wait deviceInfo.iosInfo;
返回iosInfo.identifierForVendor;//在iOS上
}否则{
var androidInfo=等待设备信息。androidInfo;
在Android上返回androidInfo.androidId;//
}
}

在数据库中创建一个表,其中组合列:userid(来自新帐户)和deviceid是唯一的。 使用设备信息包获取唯一的设备id

Future<String> getDeviceId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) {
    var iosInfo= await deviceInfo.iosInfo;
    return iosInfo.identifierForVendor; // on iOS
  } else {
    var androidInfo = await deviceInfo.androidInfo;
    return androidInfo.androidId; // on Android
  }
}
方法获取设备id

Future<String> getDeviceId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) {
    var iosInfo= await deviceInfo.iosInfo;
    return iosInfo.identifierForVendor; // on iOS
  } else {
    var androidInfo = await deviceInfo.androidInfo;
    return androidInfo.androidId; // on Android
  }
}
Future getDeviceId()异步{
var deviceInfo=deviceInfo插件();
if(Platform.isIOS){
var iosInfo=wait deviceInfo.iosInfo;
返回iosInfo.identifierForVendor;//在iOS上
}否则{
var androidInfo=等待设备信息。androidInfo;
在Android上返回androidInfo.androidId;//
}
}

解决方案是获取设备的唯一ID,并用用户详细信息修补该ID。因此,当任何人或该特定用户试图从该特定设备创建帐户时,您将使用
device\u info\u plus
package在后端检查该唯一ID是否存在。我如何检查该唯一ID是否存在解决方案是获取该设备的唯一ID并用用户详细信息修补该唯一ID。因此,当任何人或该特定用户试图从该特定设备创建帐户时,您将使用
device\u info\u plus
package check在后端检查该唯一ID是否存在